JPA学习---第六节:大数据字段映射与字段延迟加载
2014-11-07 20:38
288 查看
1、大数据字段所需的注解 @Lob ,例如:
@Lob
private String info;
在mysql中映射产生的字段的类型是longtext;在oracle中是 CLOB
@Lob
private Byte[] bytes;
mysql中对应longblob;oracle中不能使用byte[]字段加@Lob的方式直接映射
2、大数据字段最好是延迟加载,字段延迟加载时时,如果没有访问字段所对应的属性方法(getXX())时,就不会将大数据字段中的数据加载到内存当中,这样可以节约内存。延迟加载注解:
@Basic(fetch=FetchType.LAZY)
private Byte[] bytes;
代码如下:
@Lob
private String info;
在mysql中映射产生的字段的类型是longtext;在oracle中是 CLOB
@Lob
private Byte[] bytes;
mysql中对应longblob;oracle中不能使用byte[]字段加@Lob的方式直接映射
2、大数据字段最好是延迟加载,字段延迟加载时时,如果没有访问字段所对应的属性方法(getXX())时,就不会将大数据字段中的数据加载到内存当中,这样可以节约内存。延迟加载注解:
@Basic(fetch=FetchType.LAZY)
private Byte[] bytes;
代码如下:
package learn.jpa.bean; import java.util.Date; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Lob; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; @Entity @Table(name="t_person") public class Person { @Id //@Id用于标记属性的主键 @GeneratedValue private Integer id; @Column(length=64,name="personName",nullable=false) private String name; // TemporalType.DATE 表示日期格式 例:2014-10-01 // TemporalType.TIME 表示时间格式 例:12:21:34 // TemporalType.TIMESTAMP 表示日期加时间格式 例:2014-10-01 12:21:34 @Temporal(TemporalType.DATE) private Date brithday; // @Enumerated 注解枚举型 // EnumType.STRING 表示保存到数据库的值是 MAN or WOMEN // EnumType.ORDINAL 表示保存到数据库的值是 MAN 和 WOMEN 所设置的索引值 @Enumerated(EnumType.STRING) @Column(length=5, nullable=false) private Gender gender; // @Lob 字段需要存放大的文本数据 @Lob private String info; // 存放二进制数据 // FetchType.LAZY 表示延迟加载 当不访问字段所对应的属性方法时,就不会从数据库中获取数据装载到内存中 // FetchType.EAGER 表示立刻加载 @Basic(fetch=FetchType.LAZY) @Lob private Byte[] bytes; // @Transient 说明 imagepath 字段所对应的属性不作为持久化字段, // 也就是说不和数据库中的某个字段关系映射 @Transient private String imagepath; public Person(){} public Person(String name){ this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBrithday() { return brithday; } public void setBrithday(Date brithday) { this.brithday = brithday; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public Byte[] getBytes() { return bytes; } public void setBytes(Byte[] bytes) { this.bytes = bytes; } public String getImagepath() { return imagepath; } public void setImagepath(String imagepath) { this.imagepath = imagepath; } }
相关文章推荐
- JPA基础(六):大数据字段映射与字段延迟加载
- JPA之大数据字段映射与字段延迟加载
- JPA 实体字段映射(时间,枚举,延迟加载,@transient)
- JPA学习---第五节:日期和枚举等字段类型的JPA映射
- Mybatis框架学习(三)—高级映射,延迟加载
- JPA学习记录四(了解部分注解并搭建出多类型的数据字段)
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
- mybatis学习之高级映射 延迟加载
- Hibernate 5 & JPA 2.1 延迟加载大字段属性
- C#.Net Castle ActiveRecord学习实践(6):延迟加载和使用Where子句
- NHIbernate学习之旅【七】——立即/延迟加载
- Hibernate学习25 -- 延迟加载2 -- 集合Lazy特征
- 项目分析之:设计一种前端数据延迟加载的jQuery插件(2)
- 【项目分析】设计一种前端数据延迟加载的jQuery插件(2)
- 多线程的SqlBulkCopy批量导入、事务和SqlBulkCopy使用的数据集中自定义映射字段的注意事项
- JPA mysql中text字段的映射
- SD-供应商主数据和客户主数据各个字段进行显示、必输、隐藏和可选输入的配置学习
- JPA各种字段的映射
- JPA基本实体映射学习
- 解决JPA延迟加载错误问题