hibernate 怎么配置oracle的id生成策略

问题描述

hibernate 怎么配置oracle的id生成策略

之前使用hibernate连接mysql,后来需要转为oracle。
原来:
mysql的id设置为自增,
hibernate中对应的自增策略
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int userId;

现在:
oracle中的id使用序列加触发器实现了插入前自增
但是现在hibernate中应该怎么配置?

解决方案

@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="goods")
@SequenceGenerator(name="goods",sequenceName="seq_goods",allocationSize=1,initialValue=1)
private int userId;
其中generator起的名字和name的名字一致就可以了,例如我都命名为goods,sequenceName是起一个序列名,后面那两个一个是每次增一个,初始值是1

解决方案二:

@Id
@Column(name="UUID", length=32, nullable = false)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
private String uuid;

时间: 2024-09-05 06:23:34

hibernate 怎么配置oracle的id生成策略的相关文章

java-hibernate如何配置mysql主键生成策略?

问题描述 hibernate如何配置mysql主键生成策略? 在之前的使用过程中,是用的oracle,只需要用注解的方式在主键上加@GeneratedValue,新增操作时,就可以自动生成主键了. 但是现在这个项目转为用mysql,用@GeneratedValue就会报"java.sql.SQLException: Field '***' doesn't have a default value" @Id @GeneratedValue @Column(name = "rol

[Hibernate开发之路](4)ID生成策略

一 对象关系数据库映射之Id 被映射的类必须定义对应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每一个实例包含唯一的标识.<id> 元素定义了该属性到数据库表主键字段的映射.  <id name="propertyName" type="typename" column="column_name" unsaved-value="null|any|none|undefined|id_value&qu

【hibernate框架】用Annotation注解表示id生成策略

前面已经说过用XML配置ID生成策略的两个例子:http://blog.csdn.net/acmman/article/details/43305177 这里简单说一下用Annotation如何设置ID的生成策略: 除了在XML文件中去指定id的生成策略,还可以用Annotation中的注解去指定id的生成策略. 方法: @Id @GeneratedValue public int getId() { return id; } @GeneratedValue指定的id生成策略默认是AUTO,相当

hibernate5(5)实体映射注解配置[2]主键生成策略

@GeneratedValue基本注解类型 在上一篇文章中,我们讲到了JPA使用@GeneratedValue注解来定义生成策略,而关于注解生成策略有4种基本支持类型: 1. GenerationType.TABLES 当前主键的值单独保存到一个数据库的表中 2. GenerationType.SEQUENCE 利用底层数据库提供的序列生成标识符 3. GenerationType.IDENTITY 采取数据库的自增策略 4. GenerationType.AUTO 根据不同数据库自动选择合适的

mybatis 针对SQL Server 的 主键id生成策略

  SQL Server中命令: select newId()  ,可以得到SQL server数据库原生的UUID值,因此我们可以将这条指令写到 Mybatis的主键生成策略配置selectKey中. 如下: 在 mapper.xml 类型映射配置文件中 <insert id="insert" parameterType="com.hqdl.xiaoyi.bean.SpUser"> <selectKey keyProperty="id&

java学习:Hibernate学习-用oracle sequence序列生成ID的配置示例

接上回继续,TMP_EMP中的ID是根据序列SQ_TMP_EMP来生成的,需要在TmpEmp.hbm.xml中设置:   <id name="id" type="long">   <column name="ID" not-null="true" sql-type="NUMBER" unique="true"/>   <generator class=&qu

【HIBERNATE框架开发之四】HIBERNATE-ANNOTATION常用的注解归总&amp;&amp;ID的生成策略&amp;&amp;联合主键

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/811.html 这篇主要讲解Hibernate中Annotation的常用注解和ID的生成策略以及联合主键三块:     首先介绍些常用的Annotation注解: 1.  当表名与类名不一致: @Table(name="数据库表名")        (javax.persistence)      如果类名与

Hibernate主键生成策略总结(这里面讲的很详细)

 Hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定关键字来告诉hibernate我们要使用的主键生成方式,然后hibernate会根据设定完成数据库的主键控制. 一.首先通过举例子来了解实体映射文件(*.hbm.xml)中对id生成策略配置格式     用户User的实体类User.java      [java] view plaincopyprint? package com.bjpowernode.hibernate;    import java.util.

hibernate-Hibernate框架使用JPA注解时,使用的主键生成策略

问题描述 Hibernate框架使用JPA注解时,使用的主键生成策略 Hibernate框架使用JPA注解,在ID加上@GeneratedValue注解,使用的是什么主键生成策略?数据库生成了一张hibernate_sequence表.使用的是M有SQL数据库 解决方案 你用的sequence 这种策略吧,这是针对oracle 不提供自动增长的数据库类型的主键的生成方式 解决方案二: JPA使用Hibernate实现使用UUID.主键的生成策略.JPA学习笔记(4)--使用Table策略来生成主