`
wind_bell
  • 浏览: 291449 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

在Hibernate中使用oracle的sequence产生主键

阅读更多
在很多情况下,我们使用Hibernate在已经建立好数据库的基础上。在oracle中,如果已经建立好的数据库中使用了sequence,则可以按照下面的步骤把它引入到Hibernate中:
  
   1、在oracle 首先创建sequence

      create sequence seq_id
      minvalue 1
      start with 1
      increment by 1
      cache 20;

   2.在你的hbm.xml中的配置
  
     <id column="ID0000" name="id" type="integer">
         <generator class="sequence">
              <param name="sequence">seq_id</param>
         </generator>
     </id>

   这样再插入数据的时候,Hibernate回自动生成如下语句:
  
   hibernate: select seq_id.nextval from dual

   hibernate:  insert into YXJK.T_YXJK_WHRYTXL (XM0000, ZW0000, LXDH00, SJHM00, DZYJ00,  
                    IP0000,     ID0000) values (?, ?, ?, ?, ?, ?, ?)

   自动生成下一个序列值,然后将对象插入表中。
   在使用的时候需要注意,Hibernate对于sequence的主键的要求是一定要是shor,long,或者integer


分享到:
评论
1 楼 uniquejava 2010-10-27  
咋没人发现错误呢?

楼主标红的文字有误,我试了一下主键是varchar2也可以。

另外
使用 <generator class="native">
              <param name="sequence">seq_id</param>
         </generator>
也可以

相关推荐

    Hibernate主键策略-sequence

    在Hibernate的映射文件或注解中,我们需要配置使用序列来生成主键。对于XML配置,可以在`&lt;id&gt;`标签下使用`&lt;generator&gt;`子标签,指定为`sequence`: ```xml &lt;generator class="sequence"&gt; &lt;param name="...

    在hibernate中实现oracle的自动增长

    在Hibernate中利用Oracle的序列(sequence)实现自动增长,不仅可以简化主键管理,还能提高数据一致性和安全性。通过在Hibernate映射文件中正确配置序列生成器,可以确保每个实体都有一个唯一的标识符,同时避免了手动...

    Hibernate Oracle sequence的使用技巧

    本文将详细介绍如何在Hibernate中使用Oracle sequence,以及在使用过程中应注意的一些事项。 首先,我们来看如何为不同的表创建各自的sequence。在Oracle数据库中,你可以通过SQL语句创建一个sequence,例如: ```...

    Hibernate中主键生成策略

    在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...

    hibernate映射主键生成策略native

    虽然`&lt;param name="sequence"&gt;CREDIT_RECORD_id&lt;/param&gt;`在这个上下文中并不生效,但其含义是在使用特定于Oracle的sequence策略时指定序列名。实际上,在使用“native”策略时,Hibernate会根据当前数据库环境自动...

    hibernate中自动生成主键的办法

    在Hibernate中,可以使用`&lt;generator class="sequence"&gt;`来指定使用Sequence作为主键生成策略,并通过`&lt;param name="sequence"&gt;SEQ_CHILD&lt;/param&gt;`来指定具体的序列名称。这种方式适用于需要生成大量连续主键值的...

    Hibernate主键生成方式

    在Java的持久化框架Hibernate中,主键生成策略是一个关键的概念,它决定了如何为数据库中的实体对象生成唯一的标识符(主键)。以下是关于Hibernate主键生成方式的详细说明: 1. **Identity方式**:`...

    Hibernate主键生成策略

    例如,在 Oracle 数据库中使用 Sequence 方式;而对于 MySQL 和 SQL Server,则采用 `identity` 方式(即自增字段)。 - **优点**:灵活性高,可以根据不同的数据库自动选择合适的生成策略。 - **缺点**:跨数据库...

    hibernate主键生成策略

    - **应用场景**:在 Oracle 等支持 Sequence 的数据库中使用。 - **特点**: - 高度可配置,可以通过 `&lt;param&gt;` 元素指定具体的 Sequence 名称。 - 生成的主键值是连续且唯一的。 ##### 5. **Identity** - **...

    Hibernate映射文件主键的生成

    在Java的持久化框架Hibernate中,主键的生成策略是一个重要的概念,它涉及到数据库表记录的唯一标识如何自动生成。本篇文章将详细讲解Hibernate映射文件中关于主键生成的各种策略及其配置,帮助开发者更好地理解和...

    让CoolSQL支持Oracle Sequence的GeneratedKey,懂的入

    4. **第三方库集成**:如果你的项目已经使用了如MyBatis、Hibernate这样的ORM框架,它们通常已经提供了对Oracle Sequence的支持。你可以利用这些库的方法来处理GeneratedKey,而无需直接依赖CoolSQL的特性。 5. **...

    hibernate的主键生成策略

    在Hibernate中,主键生成策略是确保实体类中的主键字段具有唯一标识的关键部分。以下是对Hibernate主键生成策略的详细说明: 1. **assigned**: 这种策略要求用户在调用`save()`方法之前手动设置主键值。Hibernate...

    hibernate主键生成策略详解

    在内部,Hibernate 会调用 `org.hibernate.id.IncrementGenerator` 类中的 `generate()` 方法来获取当前主键的最大值,通常是通过执行 `SELECT MAX(idColumnName) FROM tableName` 这样的 SQL 语句来完成的。...

    hibernate映射文件--主键生成策略[参考].pdf

    在Hibernate.cfg.xml配置文件中,我们可以看到 Generator 的设置,这是Hibernate中主键生成策略的设置。Generator用于为每个POJO实例提供唯一标识。这包括assigned、native、hilo、seqhilo、increment、identity、...

    hibernate 主键生成策略

    在 Hibernate 中,主键生成策略是一项核心功能,用于确定如何为持久化实体生成唯一的标识符。以下是 Hibernate 支持的主要主键生成策略的详细解析: #### 1. Native - **描述**:此策略根据所使用的数据库类型自动...

    常用Hibernate主键生成策略

    如果是Oracle,则采用sequence等。 - **优点**:高度自动化,可以根据所使用的数据库自动选择合适的主键生成策略。 - **缺点**:需要在Hibernate的配置文件中正确设置数据库方言,否则可能无法正常工作。 #### 四...

Global site tag (gtag.js) - Google Analytics