`
taomujian
  • 浏览: 109681 次
  • 性别: Icon_minigender_1
  • 来自: 安徽-合肥
社区版块
存档分类
最新评论

Hibernate主键策略-sequence

    博客分类:
  • J2EE
阅读更多

今天在公司使用hibernate时遇到一个麻烦的问题,使用hibernate时将表的主键生成策略设定为sequence,但是在执行时总是报could not get next sequence value的错误,后来想起来别人给的建表SQL没有建立sequence的语句,于是就建立了个sequence,同时还建立了触发器,这就又引起了一个问题,最后发现只要建立个sequenceOK了,花了我不少时间有必要记录下。

使用hibernate 插入数据到oracle,如果采用sequence式生成主键则需要hibernate的配置文件里指名相应sequence同时在oracle中建立的sequence不要建立触发

建立sequencesql语句如下

drop SEQUENCE exp_sequence

 

CREATE SEQUENCE exp_sequence

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 1开始计数

NOMAXVALUE -- 不设置最大值

NOCYCLE -- 一直累加,不循环

NOCACHE -- 不建缓冲区

 

Hibernate端的关于主键的配置如

    <class name="org.taomujian.test.Expenseinfo" table="EXPENSEINFO" schema="EOS">

       <id name="expid" type="java.lang.Long">

              <column name="EXPID" precision="22" scale="0" />

              <generator class="sequence">

                     <param name="sequence">exp_sequence</param>

              </generator>

       </id>

 

件为使用的例子,配置好数据库即可使用(不用启动服务器,虽然建立的是web项目)。

分享到:
评论

相关推荐

    Hibernate各种主键生成策略

    Hibernate各种主键生成策略详解,包括 assigned increment hilo seqhilo sequence identity native uuid foreign uuid.hex sequence-identity 等

    Hibernate主键生成方式

    Hibernate主键生成方式 1.identity方式 2.increment方式 3.assigned方式 4.sequence方式 5.native方式 6.UUID方式

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

    总结一下关于JPA的主键生成策略,JPA是用@GeneratedValue标记来注释的。一般的我把主键生成分成两大类。第一个就是简单的单字段主键类型,一个就是复杂的复合主键...4. Sequence:像Oracle支持Sequence的生成主键策略

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    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 三、 ...

    真实项目中关于主键生成方式的剖析(JPA)

    本资源为原创. 其中剖析了hibernate+JPA对主键的生成方式的分类,以及在真实项目中如何使用,并且剖析各种数据库间的主键序列(sequence)原理以及使用.

    Hibernate注解

    * 13.sequence-identity sequence策略的扩展,采用立即检索策略来获取sequence值,需要JDBC3.0和JDK4以上(含1.4)版本 * 例:@GeneratedValue(generator = "paymentableGenerator") * @GenericGenerator(name = ...

    Hibernate注释大全收藏

    &lt;sequence-generator name="SEQ_GEN" sequence-name="my_sequence" allocation-size="20"/&gt; //and the annotation equivalent @javax.persistence.SequenceGenerator( name="SEQ_GEN", sequenceName="my_...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    精通Hibernate:对象持久化技术第二版part3

    本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...

    从J2SE到J2EE知识点介绍

    (八) 复合自然主键实例(源代码hibernate_0500) 218 (九) Hibernate的类型 224 1. Java基本值类型的Hibernate映射 224 2. Java时间和日期类型的Hibernate映射类型 224 3. Java大对象类型的Hibernate映射类型 225 4....

    java面试题

    Hibernate主键介绍 63 71.18.1. Assigned 63 71.18.2. Hilo 63 71.18.3. Increment 64 71.18.4. Identity 64 71.18.5. Sequence 64 71.18.6. Native 64 71.18.7. UUID 64 71.18.8. Foreign GUID 65 71.19. ...

    Java学习笔记-个人整理的

    {12.24}sequence}{189}{section.12.24} {12.25}PL/SQL}{189}{section.12.25} {13}JDBC}{191}{chapter.13} {13.1}forName}{191}{section.13.1} {13.2}JDBC}{191}{section.13.2} {13.3}连接Oracle数据库及操作}{...

    支持多数据库的ORM框架ef-orm.zip

    例如:数据库查询条件的传入问题是所有ORM框架都不能回避的一个问题,所以我经常在想——既然我们可以用向DAO传入一个Entity来实现插入操作,为什么就不能用同样的方法来描述一个不以主键为条件的update/select/...

    ARCH4系统开发指南

    2.8.2 实现Sequence主键生成策略 21 2.9 如何清除Hibernate Session中的对象 22 2.10 使用日期控件 22 2.11 如何引入外部文件 23 2.11.1 主页面采用include方式,引入各个子页面jsp文件 23 2.11.2 主页面用${ctx}...

Global site tag (gtag.js) - Google Analytics