`
meiyoudao
  • 浏览: 87987 次
  • 性别: Icon_minigender_1
  • 来自: 冲脉
社区版块
存档分类
最新评论

Hibernate Id生成策略

阅读更多
 <!-- UUID 生成策略   -->
<!-- domain ID类型 必须是 String  -->
<!-- 类似于网卡生成的类型   -->
<class name="Person">
        <id name="id">
        <generator class="uuid"></generator>
        </id>
        <property name="name"/>
        <property name="weight"/>
    </class>

<!--native 生成策略-->
<!--domain ID类型 必须是 int-->
<!--由数据库自动递增-->

 <class name="Person">
        <id name="id">
        <generator class="native"></generator>
        </id>
        <property name="name"/>
        <property name="weight"/>
    </class>

Annotation的ID生成策略

package com.meiyoudao.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class PersonAnno {
	
	
	private int id;
	private String name;
	private String weight;
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)//不能用于oracle,因为不支持IDENTITY; oracle是SEQUENCE
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getWeight() {
		return weight;
	}
	public void setWeight(String weight) {
		this.weight = weight;
	}

}


指定SEQUENCE名
package com.meiyoudao.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;

@Entity
@SequenceGenerator(name = "sequence_ora",sequenceName="SEQUENCE_ORACLE") //数据库中的sequence名:SEQUENCE_ORACLE
				   														 //还有一些可配参数如initialValue 初始化值;allocationSize每次主键值增加的大小
public class PersonAnno {
	
	
	private int id;
	private String name;
	private String weight;
	
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="sequence_ora")//指定定义的sequence名
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getWeight() {
		return weight;
	}
	public void setWeight(String weight) {
		this.weight = weight;
	}

}


用表存储自增长值

package com.meiyoudao.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.TableGenerator;

@Entity
@TableGenerator(name="sequence_mysql",table="generator_mysql")
//可以设置表名,表列名,表初始值等等信息
public class PersonAnno {
	
	
	private int id;
	private String name;
	private String weight;
	
	@Id
	@GeneratedValue(strategy=GenerationType.TABLE,generator="sequence_mysql")
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getWeight() {
		return weight;
	}
	public void setWeight(String weight) {
		this.weight = weight;
	}

}
分享到:
评论

相关推荐

    Hibernate教程02_ID生成策略

    http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码

    JAVA 的ID生成策略

    主要描述hibernate在Annotation情况下的主键生成策略

    Hibernate的主键生成策略

    Hibernate的所有自带的主键生成策略以及XML配置文件的用法

    JPA学习笔记-EJB-03JPA主键生成策略总结

    第一种单字段主键类型,看上去简单,无非就是一个id字段呗,实际上这个主键字段在JPA,还有任何的ORM框架中都是有很多种生成策略的。 一般是如下4种: 1. AUTO:自动自增生成 2. TABLE:自定义表生成器 3. Identity...

    auto-factory-0.1-beta1.zip

    postgres-hibernate-mapper.zip,Postgre Hibernate Mapper是处理默认Hibernate ID生成策略的小项目。Postgre-Hibernate-Mapper是解决此问题的小项目...

    Hibernate笔记 马士兵

    第13课 ID主键生成策略 20 一、 Xml方式 20 元素(主键生成策略) 20 二、 annotateon方式 21 1、AUTO默认 21 2、IDENTITY 22 3、SEQUENCE 22 4、为Oracle指定定义的Sequence 22 5、TABLE - 使用表保存id值 23 三、 ...

    马士兵hibernate学习笔记(原版)

    5 ID生成策略(重点 AUTO) 6 Hibernate核心开发接口介绍(重点) ... 风格 1 先脉络,后细节 2 先操作,后原理 3 重Annotation,轻xml配置文件 ... 性能优化 1 注意session.clear()的运用,尤其在不断...

    Hibernate注解

    * @GenericGenerator —— 注解声明了一个hibernate的主键生成策略。支持十三种策略。该注解有如下属性 * name 指定生成器名称 * strategy 指定具体生成器的类名(指定生成策略)。 * parameters 得到strategy指定的...

    Hibernate+中文文档

    3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of inheritance mappings) 16.1. 别名注射(alias injection names) 19.1. ...

    hibernate配置

    hibernate是一个封装在SQL和JDBC之上的企业级应用框架 配置文件的基本结构如下: &lt;?xml version="1.0" encoding='UTF-8'?&gt;... 主键生成策略"/&gt; &lt;/id&gt; …… &lt;/hibernate-mapping&gt;

    Hibernate注释大全收藏

    @Id 注解可将实体Bean中某个属性定义为主键,使用@GenerateValue注解可以定义该标识符的生成策略。 • AUTO - 可以是 identity column, sequence 或者 table 类型,取决于不同底层的数据库 • TABLE - 使用table...

    Hibernate中的merge使用详情解说.docx

    merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理: 当ID在数据库中不能找到时,用...用update的话,由于没有ID,所以会报异常,merge此时则会保存数据,根据ID生产策略生成一条数据;

    hibernate3.2中文文档(chm格式)

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    HibernateAPI中文版.chm

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    hibernate 教程

    开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory配置 3.1. 可编程配置方式...

    hibernate课程详解

    hibernate相关知识,包括关系映射、缓存配置、id生成策略等

    hibernate笔记

    5 ID生成策略(重点 AUTO) 5 6 Hibernate核心开发接口介绍(重点) 5 7 对象的三种状态(了解) 5 8 关系映射(重点) 5 9 Hibernate査询(HQL) 5 10 在Struts基础上继续完善BBS200 5 11 性能优化(重点) 5 12 补充...

    hibernate学习笔记

    Hibernate 学习笔记 Hibernate 学习笔记 1 第一个hibernate项目(hibernate_first) 2 测试实体对象的生命周期(hibernate_session) 3 ...hibernate抓取策略 53 Hibernate最佳实践(Best Practices) 55

    演示怎样在Hibernate中使用复合主键

    那么,我们这里的解决方案是使用uuid.hex生成32个字符长度的ITEM_ID订单编号,然后CATEGORY_ITEM表根据这个订单编号来追加业务逻辑数据。 使用方式: 1、下载解压之后,使用MyEclipse导入工程 2、使用查询分析,把...

    HibernateForeignKeyGenerator:演示如何在Hibernate Framework中使用“外国”生成器策略。 以及如何定义一对一关系

    演示如何使用Hibernate生成器“ Foreign”关键策略和一对一映射。 介绍如何使用Hibernate和spring在内存嵌入式db中使用H2。 给您有关创建定制生成器的想法。TechStack。 Spring Core / ORM。 Hibernate框架。 ...

Global site tag (gtag.js) - Google Analytics