我今天分配的任务是为一个页面Debug,遇到了一个问题查询的实体类在数据库没有对应的表,这时最常用的是建立视图或者表,但是应用@Transient注释可以让你更简单,免除建立表还有视图需要找多表关联关系的苦恼,@Transient 表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient 后面就不要用实体去查询了,在dao类中写一个多表联查。

package com.haiyisoft.entity;

import java.math.BigDecimal;
import com.haiyisoft.ep.common.db.Record;
import com.haiyisoft.ep.common.jpa.meta.EntityMetaData;
import com.haiyisoft.ep.common.jpa.util.EntityMetaDataUtil;
import com.haiyisoft.ep.common.util.PrintUtil;
import com.haiyisoft.ep.exception.BaseRunException;
import javax.persistence.*;

import com.haiyisoft.entity.EntityBean;

@Entity
@Table(name = "eai_test_person_info")
public class EaiTestPersonInfo extends EntityBean{
private static final long serialVersionUID = 1L;
@Transient 
@Id
@Column(name = "Pk")
private BigDecimal pk;
@Transient 
@Column(name = "account")
private String account="";
@Transient 
@Column(name = "contract")
private String contract="";
@Transient 
@Column(name = "name")
private String name="";
@Transient 
@Column(name = "sex")
private String sex="";
@Transient 
@Column(name = "address")
private String address="";
@Transient 
@Column(name = "phone")
private String phone="";
@Transient 
@Column(name = "email")
private String email="";

public BigDecimal getPk() {
return pk;
}

public void setPk(BigDecimal pk){
this.pk = pk;
}

public String getAccount() {
return account;
}

public void setAccount(String account){
this.account = account;
}

public String getContract() {
return contract;
}

public void setContract(String contract){
this.contract = contract;
}

public String getName() {
return name;
}

public void setName(String name){
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex){
this.sex = sex;
}

public String getAddress() {
return address;
}

public void setAddress(String address){
this.address = address;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone){
this.phone = phone;
}

public String getEmail() {
return email;
}

public void setEmail(String email){
this.email = email;
}

@Override
public Record exportToRecord() {
EntityMetaData metaData = EntityMetaDataUtil.getEntityMetaData(this.getClass().getName());
if (metaData == null) {
new BaseRunException("Java类"+this.getClass().getName()+"没有元数据信息!不能导出为Record!").handle();
}
Record record = PrintUtil.genEmptyExportRecord(metaData);
record.set("Pk", this.pk);
record.set("account", this.account);
record.set("contract", this.contract);
record.set("name", this.name);
record.set("sex", this.sex);
record.set("address", this.address);
record.set("phone", this.phone);
record.set("email", this.email);
record.set("checked", super.getChecked());
return record;
}

}

@Transient的应用的更多相关文章

  1. transient关键字的用法

    本篇博客转自 一直在路上 Java transient关键字使用小记 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,Java ...

  2. Java transient关键字

    Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一 ...

  3. Java中的关键字 transient

    先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息 ...

  4. transient关键字的作用

    代码如下: import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutpu ...

  5. Transient的作用

    1:transient的作用及其使用方法 当一个对象实现类Serilizable接口,那么这个类就可以被序列化,java的这种序列化的模式为开发者提供了很多的便利. 然而在实际开发中,我们常常遇到这样 ...

  6. java中transient关键字的作用

    Java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身.这可以极大地方便网络上的一些操作,但同时,因为涉 ...

  7. DI中Transient Scoped Singleton Instance的区别

    Observe which of the OperationId values varies within a request, and between requests. Transient obj ...

  8. Java transient 关键字

    1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问. 2)transient关键字只能修饰变量,而不能修饰方法和类.注意,本地变量是不能被trans ...

  9. 序列化,反序列化和transient关键字

    一.序列化和反序列化的概念 序列化:指把java对象转换为字节序列的过程. 反序列化:指把字节序列恢复为java对象的过程. 对象的序列化主要有两种用途: 1) 把对象的字节序列保存到硬盘上,通常存放 ...

  10. @Transient注解----Hiberbate

    @Transient表示该属性并非一个到数据库表的字段的映射,将会忽略该属性.如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic Exa ...

随机推荐

  1. SQL Tuning 基础概述10

    在<SQL Tuning 基础概述05 - Oracle 索引类型及介绍>的1.5小节,提到了几种"索引的常见执行计划": INDEX FULL SCAN:索引的全扫描 ...

  2. 开源you-get项目爬虫,以及基于python+selenium的自动测试利器

    写在前面 爬虫和自动测试,对于python来说是最合适不过也是最擅长的. 开源的项目也很多,例如you-get项目https://github.com/soimort/you-get.盗链和爬虫神器. ...

  3. Win10应用商店缓存信息多如何去清理?

    Win10系统的应用商店相比之前有了许多的更新,微软也成立了专门的团队准备对应用商店进行完善,但是我们在使用应用商店的过程中会产生许多缓存文件,占用电脑空间资源,也会影响电脑的运行速度. 下面好系统重 ...

  4. Linux系统安装常用开发软件

    vim.jdk.tomcat.mysql 安装vim(命令模式=>编辑模式=>底行模式) [root@localhost ~]# yum install vim*结束后一直确认即可,键入y ...

  5. Linux使用storcli工具查看服务器硬盘和raid组信息

    1.简介 MegaCli 是LSI公司官方提供的SCSI卡管理工具,由于LSI被收购变成了现在的Broadcom,所以现在想下载MegaCli, 需要去Broadcom官网查找Legacy产品支持,搜 ...

  6. 批量关闭linux进程

    批量关闭linux进程 你是否经常遇到需要批量杀死很多进程的情况?而你是否还在一个一个的kill. 接下来我教你一个小秘诀吧. 1.首先我们查看当前的进程列表. 我们以查看nginx进程为例,通过ps ...

  7. $q defer

    实际应该是这样更好理解 把,asyncGreet换成实际的http请求SyncRequest. 如果我们多个请求那么 就是多个 promise我们要么就是链式then,要么就是$q.all 可以根据需 ...

  8. lodash 中 remove

    var obj = { "objectiveDetailId": 285, "objectiveId": 29, "number": 1, ...

  9. zencart批量评论插件Easy Populate CSV add reviews使用教程

    此插件在Easy Populate CSV 1.2.5.7b产品批量插件基础上开发,有1.3x与1.5x两个版本. zencart批量评论插件Easy Populate CSV add reviews ...

  10. C - Nuske vs Phantom Thnook

    题意:n*m矩阵,n,m<=2e3,矩阵中的1能走到相邻4个1上,0代表障碍,若两个1联通 则只有一条路径 q个询问,q<=2e5,每次询问一个子矩阵中有多少个连通分量? 同一个连通分量中 ...