@Transient的应用
我今天分配的任务是为一个页面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的应用的更多相关文章
- transient关键字的用法
本篇博客转自 一直在路上 Java transient关键字使用小记 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,Java ...
- Java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一 ...
- Java中的关键字 transient
先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息 ...
- transient关键字的作用
代码如下: import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutpu ...
- Transient的作用
1:transient的作用及其使用方法 当一个对象实现类Serilizable接口,那么这个类就可以被序列化,java的这种序列化的模式为开发者提供了很多的便利. 然而在实际开发中,我们常常遇到这样 ...
- java中transient关键字的作用
Java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身.这可以极大地方便网络上的一些操作,但同时,因为涉 ...
- DI中Transient Scoped Singleton Instance的区别
Observe which of the OperationId values varies within a request, and between requests. Transient obj ...
- Java transient 关键字
1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问. 2)transient关键字只能修饰变量,而不能修饰方法和类.注意,本地变量是不能被trans ...
- 序列化,反序列化和transient关键字
一.序列化和反序列化的概念 序列化:指把java对象转换为字节序列的过程. 反序列化:指把字节序列恢复为java对象的过程. 对象的序列化主要有两种用途: 1) 把对象的字节序列保存到硬盘上,通常存放 ...
- @Transient注解----Hiberbate
@Transient表示该属性并非一个到数据库表的字段的映射,将会忽略该属性.如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic Exa ...
随机推荐
- get获取后台数据
let url = $.getCookie('prefixUrl')+'/currencyRatesManage/getCurrency'; let vm=this; $.ajax({ url: ur ...
- XML基础综合案例【三】
实现简单的学生管理系统 使用xml当做数据,存储学生信息 ** 创建一个xml文件,写一些学生信息 ** 增加操作1.创建解析器2.得到document 3.获取到根节点4.在根节点上面创建stu标签 ...
- 异步任务——AsyncTask的初步认识
ProgressBar_test.class package com.example.administrator.ten_9; import android.app.Activity; import ...
- 内核模式构造-Semaphore构造(WaitLock)
internal sealed class SimpleWaitLock : IDisposable { //(信号量)允许多个线程并发访问一个资源 //如果所有线程以只读方式访问资源则是安全的 pr ...
- php的lareval框架配置出错
前两天,在学习php的 lareval 框架时,从官网上下载完lareval的安装包后,按照网上的配置教程一点一点的配置完后,当点击public 文件运行时就出现一个让我很头痛的问题,我自己外加两个大 ...
- [uboot] (番外篇)uboot 驱动模型(转)重要
[uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)[project X] tiny210(s5pv210)从存储设备加载代码到D ...
- wget 小技巧
一,案例 wget, 一个强大的下载命令.下载文件如果由于中途因本地网络问题断开了,没下载完,重新运行了一下WGET命令,会发现完全在重新下载了,新文件名字会在后面加个1..... 这是wget下载失 ...
- solr admin界面的监控
这里可以看到,solr的版本,lucene的版本,jvm的版本,CPU核数,jvm启动参数,还有物理内存占用,交换空间占用,jvm内存占用. 这里可以看到每个core的情况. 这里可以看到java的所 ...
- 检验注解@Validated 和@valid说明
- 多线程(四)wait()、notify()以及notifyAll()
六.线程的等待和唤醒 1.wait()和notify()的简单示范 public class Wait extends Thread{ public synchronized void run() { ...