Hibernate4之JPA规范配置详解.docx_第1页
Hibernate4之JPA规范配置详解.docx_第2页
Hibernate4之JPA规范配置详解.docx_第3页
Hibernate4之JPA规范配置详解.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录- Table ID 和GeneratedValueTableTable用来定义entity主表的name,catalog,schema等属性。属性说明: name:表名 catalog:对应关系数据库中的catalog schema:对应关系数据库中的schema UniqueConstraints:定义一个UniqueConstraint数组,指定需要建唯一约束的列.UniqueConstraint定义在Table或SecondaryTable元数据里,用来指定建表时需要建唯一约束的列。下面是指定2个字段要唯一约束.?12345678Example:EntityTable(name=EMPLOYEE,uniqueConstraints=UniqueConstraint(columnNames=EMP_ID, EMP_NAME)public class Employee . ID 和GeneratedValue通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为Id,其生成规则由GeneratedValue设定的.这里的id和GeneratedValue都是JPA的标准用法,JPA提供四种标准用法,由GeneratedValue的源代码可以明显看出.?123456789Target(METHOD, FIELD)Retention(RUNTIME)public interface GeneratedValue GenerationType strategy() default AUTO;String generator() default ;其中GenerationType:?123456789101112package javax.persistence;public enum GenerationType TABLE,SEQUENCE,IDENTITY,AUTOJPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO. TABLE:使用一个特定的数据库表格来保存主键。 SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。 IDENTITY:主键由数据库自动生成(主要是自动增长型) AUTO:主键由程序控制(也是默认的,在指定主键时,如果不指定主键生成策略,默认为AUTO)?123IdGeneratedValueprivate Long id;四种数据库的支持情况如下:数据库名称支持的id策略mysqlGenerationType.TABLEGenerationType.AUTOGenerationType.IDENTITY不支持GenerationType.SEQUENCEoraclestrategy=GenerationType.AUTOGenerationType.SEQUENCEGenerationType.TABLE不支持GenerationType.IDENTITYpostgreSQLGenerationType.TABLEGenerationType.AUTOGenerationType.IDENTITYGenerationType.SEQUENCE都支持kingbaseGenerationType.TABLEGenerationType.SEQUENCEGenerationType.IDENTITYGenerationType.AUTO都支持GeneratedValue:主键的产生策略,通过strategy属性指定。主键产生策略通过GenerationType来指定。GenerationType是一个枚举,它定义了主键产生策略的类型。1、AUTO自动选择一个最适合底层数据库的主键生成策略。如MySQL会自动对应auto increment。这个是默认选项,即如果只写GeneratedValue,等价于GeneratedValue(strategy=GenerationType.AUTO)。2、IDENTITY表自增长字段,Oracle不支持这种方式。3、SEQUENCE通过序列产生主键,MySQL不支持这种方式。4、TABLE通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。不同的JPA实现商生成的表名是不同的,如 OpenJPA生成openjpa_sequence_table表,Hibernate生成一个hibernate_sequences表,而TopLink则生成sequence表。这些表都具有一个序列名和对应值两个字段,如SEQ_NAME和SEQ_COUNT。在我们的应用中,一般选用GeneratedValue(strategy=GenerationType.AUTO)这种方式,自动选择主键生成策略,以适应不同的数据库移植。如果使用Hibernate对JPA的实现,可以使用Hibernate对主键生成策略的扩展,通过Hibernate的GenericGenerator实现。GenericGenerator(name = system-uuid, strategy = uuid)声明一个策略通用生成器,name为system-uuid,策略strateg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论