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;

代码如下:

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学习---第六节:大数据字段映射与字段延迟加载的更多相关文章

  1. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  2. JPA学习(六、JPA_JPQL)

    框架学习之JPA(六) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  3. VUE2.0实现购物车和地址选配功能学习第六节

    第六节 地址列表过滤和展开所有的地址 html:<li v-for="(item,index) in filterAddress">js: new Vue({ el:' ...

  4. Coursera在线学习---第六节.构建机器学习系统

    备: High bias(高偏差) 模型会欠拟合    High variance(高方差) 模型会过拟合 正则化参数λ过大造成高偏差,λ过小造成高方差 一.利用训练好的模型做数据预测时,如果效果不好 ...

  5. JPA学习---第五节:日期和枚举等字段类型的JPA映射

    1.在上一节可在数据库中看到创建出来的表和字段,是通过 Entity bean 来创建的,而创建表名和字段名的规则是怎样的? 有类,代码如下: package learn.jpa.bean; impo ...

  6. JPA学习---第十一节:JPA中的多对多双向关联实体定义与注解设置及操作

    1.定义实体类,代码如下: (1).学生实体类: package learn.jpa.entity; import java.util.HashSet; import java.util.Set; i ...

  7. JPA学习---第十节:JPA中的一对一双向关联

    1.创建实体类,代码如下: 代码清单1: package learn.jpa.entity; import javax.persistence.CascadeType; import javax.pe ...

  8. JPA学习---第七节:使用JPA加载_更新_删除对象

    1.添加数据,代码如下: @Test public void save(){ EntityManagerFactory factory = Persistence.createEntityManage ...

  9. JPA学习---第四节:JPA实例与JPA主键生成策略

    1.编写实体类,代码如下: package learn.jpa.bean; import javax.persistence.Entity; import javax.persistence.Gene ...

随机推荐

  1. BZOJ 1050

    1050: [HAOI2006]旅行comf Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2593  Solved: 1399[Submit][St ...

  2. javascript-函数的参数和return语句

    × 目录 [1]参数 [2]Arguments对象 [3]函数重载 [4]return 语句 ------------------------------------- 一.参数(最多25个) 可以动 ...

  3. Part 99 Lambda expression in c#

    class Program { static void Main(string[] args) { List<Person> persons = new List<Person> ...

  4. Python Opearte MS-SQL Use Pymssql

    看到很多的开源数据库会用到MySQL,Python同样也使用,但是我已经习惯使用图形化界面,操作感极强的MS-SQL 看到Python也提供MS-SQL连接方式,需要用到PyMssql. 在Windo ...

  5. UI2_视图切换

    // // ViewController.m // UI2_视图切换 // // Created by zhangxueming on 15/7/1. // Copyright (c) 2015年 z ...

  6. 方法:一个简单的读取配置文件.properties的工具类 JAVA

    import java.util.ResourceBundle; public class ConfigHelper { private static ConfigHelper instance; p ...

  7. [Guava源码分析]Ordering:排序

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3876466.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  8. ServletContext的用途

    安装在一个服务器中的一个特定URL名字空间(比如,/myapplication)下的所有Servlet,JSP,JavaBean等Web部件的集合构成了一个Web的应用,每一个Web应用(同一JVM) ...

  9. linux命令之grep用法介绍

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  10. PHP:parse_str()字符串函数

    parse_str()-把字符串解析成多个变量. 描述:void parse_str(sring $str  [, array $arr]) 如果str是URL传递入的查询字符串(query stri ...