Hibernate_OID生成策略.doc_第1页
Hibernate_OID生成策略.doc_第2页
Hibernate_OID生成策略.doc_第3页
Hibernate_OID生成策略.doc_第4页
Hibernate_OID生成策略.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

OID生成策略 hibernate使用OID唯一标示一个po对象 数据库使用主键唯一标示一个实体 hbm.xml:id 指定OID(对象标识符) generator 指定生成主键的主要方式 native 根据底层数据库对自动生成标识符的支持能力, 来选择主键生成方式 oracle 自动生成hibernate_sequence的序列 increment Hibernate生成,select max(STUDENTID) 作为主键 适合所有数据库 identity 由底层数据库(支持自动增长)生成,常用于sqlserver mysql sequence 由数据库提供的序列生成,适合Oracle Assigned 通过程序指定 不指定generator时的默认 uuid 使用全球唯一标示生成主键常用配置: mysql: oracle: SEQ_STUDENT JPA使用 GeneratedValue指定ID生成策略:Id Column(name=TEACHERID) GeneratedValue(strategy=GenerationType.AUTO)/oracle 指定序列名称SequenceGenerator(name=seq_teacher,sequenceName=SEQ_TEACHER,allocationSize=1)GeneratedValue(strategy=GenerationType.SEQUENCE,generator=seq_teacher)/mysql:GeneratedValue(strategy=GenerationType.IDENTITY)映射自然主键(不指定自动增长的主键) hbm.xml JPA:GeneratedValue(strategy=GenerationType.AUTO)映射自然复合主键映射文件版本/*=*/* Table: job 映射联合主键例子: 职位表 */*=*/create table job( jobNo number(5) not null, jobName varchar2(20) not null, jobDesc varchar2(50), constraint PK_job primary key(jobNo,jobName) -指定复合主键)Pojo类 /复合主键类/* * 复合主键类要求: * 1.implements java.io.Serializable * 2.重写equals hashCode */public class JobId implements java.io.Serializable private Integer jobNo;private String jobName;/重写equals hashCode/equsls 判断两个对象相等条件为jobNo和jobName都相等Overridepublic boolean equals(Object other) if (this = other) return true;if (other = null) return false;if (!(other instanceof JobId) return false;JobId jobId = (JobId) other; if(!jobNo.equals(jobId.getJobNo() return false; if(!jobName.equals(jobId.getJobName() return false; return true;Overridepublic int hashCode() int result ;result =(jobNo = null ? 0 : jobNo.hashCode();result = 37 * result+ (jobName = null ? 0 : jobName.hashCode();return result;Job类public class Job private JobId id; /联合主键类作为成员private String jobdesc;Job.hbm.xml映射文件 测试例子参见: JobDAOImpl.java JobDAOTest.javaAnnotation联合主键版本1. 使用EmbeddedId注解标示联合主键类成员Entitypublic class Job private static final long serialVersionUID = -4660865172058580473L;private JobId id; /联合主键类作为成员 并且联合主键类的属性可以使用Columnprivate String jobdesc;EmbeddedId public JobId getId() return this.id;2. 类注解为IdClass,并将该实体中所有属于主键的属性都注解为Id.EntityIdClass(JobId.class)public class Job private static final long serialVersionUID = -4660865172058580473L;private String jobdesc;private Integer jobNo;private String jobName;Idpublic Integer getJobNo() return jobNo;Idpublic String getJobName() return jobName;SchemaExport hiberante的生成数据库表(及其他ddl)的工具类可以通过这个工具类完成一些ddlpublic static void main(String args) Configuration config=new Configuration(); config.

温馨提示

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

评论

0/150

提交评论