`
johnnyhg
  • 浏览: 346651 次
  • 来自: NA
社区版块
存档分类
最新评论

Hibernate用Oracle的sequence生成自增Id

阅读更多
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.ko.pp.entity.InputUserInfo" table="Input_User_Info" schema="dbname">
        <id name="id" type="java.lang.Long">
            <column name="ID" precision="22" scale="0" />
            <generator class="sequence">
            	<!--采用Oracle的Sequence机制-->
			<param name="sequence">INPUT_USER_INFO_SEQ</param>
	    </generator> 
        </id>
        <property name="name" type="string">
            <column name="NAME" length="20" />
        </property>
        <property name="certno" type="string">
            <column name="CERTNO" length="30" />
        </property>
        <property name="nationality" type="string">
            <column name="NATIONALITY" length="20" />
        </property>
        <property name="gender" type="string">
            <column name="GENDER" length="1" />
        </property>
        <property name="identity" type="string">
            <column name="IDENTITY" length="20" />
        </property>
        <property name="srvcls" type="string">
            <column name="SRVCLS" length="20" />
        </property>
    </class>
</hibernate-mapping>
分享到:
评论

相关推荐

    Hibernate教程02_ID生成策略

    4. ** Sequence **:使用数据库序列来生成ID,常见于Oracle和PostgreSQL。Hibernate中通过`@GeneratedValue(strategy = GenerationType.SEQUENCE)`和`@SequenceGenerator`进行配置。 5. ** Table **:通过一个专门...

    在hibernate中实现oracle的自动增长

    在上述映射文件中,`Department`实体的主键属性`id`被指定使用`sequence`生成器。通过`&lt;param name="sequence"&gt;DEPARTMENT_ID_SEQ&lt;/param&gt;`指定了Oracle中已创建的序列名`DEPARTMENT_ID_SEQ`。这意味着每次创建新的`...

    hibernate映射主键生成策略native

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

    Hibernate主键策略-sequence

    Hibernate通过`org.hibernate.id.SequenceGenerator`类来实现序列主键生成器。在`nextValue()`方法中,它会与数据库进行交互,获取序列的下一个值。这个过程涉及到JDBC操作,包括SQL的执行和结果的处理。 3. **...

    JAVA 的ID生成策略

    JAVA ID生成策略是一种在Hibernate框架中使用的策略,用于生成实体类的主键值。这种策略在Annotation情况下,主要有三种方式生成主键值。 第一种方式是使用数据库的自动增长字段生成。这种方式使用@GeneratedValue...

    hibernate 主键生成策略

    - **应用场景**:在 Oracle 数据库中常见,因为 Oracle 不支持自增字段,而 Sequence 是一种高效的解决方案。 #### 5. Identity - **描述**:利用 SQL Server 和 MySQL 的 AUTO_INCREMENT 特性自动为字段分配下一...

    Hibernate各种主键生成策略与配置详解

    increment策略由Hibernate在内存中自增生成主键,不依赖于数据库。它通过查询当前表的最大ID值,然后在内存中递增生成新的主键。由于这个过程不是线程安全的,因此在多JVM环境下可能会导致主键冲突。仅适用于单个...

    Hibernate的主键生成方式

    - **定义**:Hibernate会根据当前使用的数据库类型自动选择最适合的主键生成策略(如identity、hilo、sequence)。 - **应用场景**:适用于跨数据库平台的应用开发,可以避免因为数据库不同而导致的代码修改。 8....

    ID生成策略

    值得注意的是,在某些数据库如Oracle中,虽然不直接支持`IDENTITY`关键字,但可以通过其他方式来实现类似的自增ID生成机制。 #### 2. Sequence(序列) `Sequence`是一种适用于支持序列操作的数据库系统(如DB2和...

    hibernate中的generator的生成方式hibernate中的generator的生成方式

    在Hibernate中,`Generator`是负责生成主键值的策略,通常在`&lt;id&gt;`元素中通过`class`属性指定。不同的数据库和不同的应用场景可能需要不同的生成策略。接下来,我们将逐一介绍各种常见的生成策略及其适用场景。 ###...

    hibernate主键生成策略

    - **描述**:这是一个特殊的策略,结合了`sequence`和`identity`的特点,在某些数据库(如Oracle)中使用JDBC 3的`getGeneratedKeys`方法来获取生成的主键值。 - **应用场景**:适用于需要高效生成主键且支持JDBC 3...

    hibernate注解中的名词解释

    JPA提供了多种策略,如 AUTO(让数据库自动生成,例如自增ID)、TABLE(通过特定的数据库表生成)、IDENTITY(数据库自动生成,比如MySQL的自动增长)、SEQUENCE(基于数据库序列,适用于Oracle等支持序列的数据库)...

    hibernate源码分析过程

    id 算法可以是整型自增、sql server 等数据库的 identity、Oracle 的 sequence、hilo(高低位)算法、uuid、guid、程序赋值等。复合主键可以组合多个列来唯一标识一个对象。数据版本并发性控制可以使用版本、时间戳...

    Java探索之Hibernate主键生成策略详细介绍

    Native主键生成策略是由Hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。这种策略灵活性很强,可以根据数据库自动选择主键生成方式。 例子:&lt;id name="id" column="id"&gt;...

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

    而Hibernate提供了跨数据库的主键生成策略,例如`native`策略,它会根据底层数据库自动选择合适的主键生成方式(如MySQL的自动增长ID或Oracle的序列)。 在JPA中,通过`@GenericGenerator`注解可以定义主键的生成...

    sequence:从数据库生成序列 ID

    如果你的项目使用了JPA(Java Persistence API)或者其实现之一,如Hibernate,那么可以定义一个带有@Id注解的字段,并设置生成策略为`GenerationType.SEQUENCE`。例如,使用Hibernate: ```java @Entity public ...

    Hibernate-add学习

    - **dialect**: 指定了Hibernate使用的方言,它告诉Hibernate如何处理特定数据库的SQL语法差异。 - **MySQL**: `org.hibernate.dialect.MySQLDialect` - **Oracle**: `org.hibernate.dialect.Oracle9Dialect` - *...

    hibernate的映射文件配置

    6. **sequence**:使用数据库Sequence机制,适合Oracle等数据库。 7. **native**:由Hibernate自动选择identity、hilo或sequence之一。 8. **uuid.hex**:生成16进制的UUID作为主键。 9. **uuid.string**:生成未...

Global site tag (gtag.js) - Google Analytics