hibernate ID生成策略配置
1.Student.hbm.xml配置
- <hibernate-mapping package="com.wxh.hibernate.model">
- <class name="Student" >
- <id name="id">
- <generator class="uuid"></generator>
- </id>
- <property name="age"></property>
- <property name="name"></property>
- </class>
- </hibernate-mapping>
uuid
uses a 128-bit UUID algorithm to generate identifiers of type string that are unique within a network (the IP address is used). The UUID is encoded as a string of 32 hexadecimal digits in length.
id的类型要为String类型。终于在mysql中产生的id为varchar类型。
- <hibernate-mapping package="com.wxh.hibernate.model">
- <class name="Student" >
- <id name="id">
- <generator class="uuid"></generator>
- </id>
- <property name="age"></property>
- <property name="name"></property>
- </class>
- </hibernate-mapping>
native
selects identity
, sequence
or hilo
depending
upon the capabilities of the underlying database.
2.Annotation配置_IDENTITY_SEQUENCE
- @Id
- @GeneratedValue(strategy=GenerationType.IDENTITY)
- public int getId() {
- return id;
- }
Sequence生成器,使用oracle数据库。
@SequenceGenerator(name=”teacherSEQ”,sequenceName=”teacherSEQ_DB”)加在类前
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator=”teacherSEQ”)加在方法前
3.TableGenerator(跨数据库平台)
@javax.persistence.TableGenerator(
name="Teacher_GEN",
table="GENERATOR_TABLE",
pkColumnName="pk_key",
valueColumnName="pk_value",
pkColumnValue="Teacher",
allocationSize=1
)
Student.hbm.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- <hibernate-mapping package="com.wxh.pojo">
- <!-- name相应类名称 -->
- <class name="Student" >
- <!-- name相应属性名字 -->
- <id name="stuNo">
- <!--
- ID生成策略:针对不同的数据库对象使用不同的id生成方式
- identity:mysql,mssqlservler(整型列)
- sequence:oracle,db2(整型列)
- uuid:一般用于字符串类型的主键
- guid:同上(一般用于mysql,sqlserver)
- native:经常使用配置(依据不同的数据库自己主动选择使用identity,sequence。hilo中的当中一个作为生成策略)
- -->
- <generator class="native">
- <!-- 设置自己定义序列的名字 -->
- <param name="sequence">auto_sid</param>
- </generator>
- </id>
- <property name="name" column="stuname" length="16" not-null="true" unique="false">
- </property>
- <property name="major" length="32"></property>
- <property name="comingYear"></property>
- <property name="type" length="16"></property>
- </class>
- </hibernate-mapping>
Teacher.hbm.xml
- <?xml version="1.0" encoding="UTF-8"?
- >
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- <hibernate-mapping package="com.wxh.pojo">
- <!-- name相应类名称 -->
- <class name="Teacher" >
- <!-- name相应属性名字 -->
- <id name="tid">
- <!--
- ID生成策略:针对不同的数据库对象使用不同的id生成方式
- identity:mysql,mssqlservler(整型列)
- sequence:oracle,db2(整型列)
- uuid:一般用于字符串类型的主键
- guid:同上(一般用于mysql,sqlserver)
- native:经常使用配置(依据不同的数据库自己主动选择使用identity,sequence,hilo中的当中一个作为生成策略)
- -->
- <generator class="native">
- <!-- 设置自己定义序列的名字 -->
- <param name="sequence">auto_tid</param>
- </generator>
- </id>
- <property name="tname" length="16" not-null="true" unique="false">
- </property>
- </class>
- </hibernate-mapping>
hibernate ID生成策略配置的更多相关文章
- hibernate(四)ID生成策略
一.ID生成策略配置 1.ID生成方式在xml中配置方式: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping P ...
- Hibernate学习笔记2.4(Hibernate的Id生成策略)
通过设置告诉id该怎么设置. 1.通过xml方式 1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据 ...
- Hibernate系列之ID生成策略
一.概述 hibernate中使用两种方式实现主键生成策略,分别是XML生成id和注解方式(@GeneratedValue),下面逐一进行总结. 二.XML配置方法 这种方式是在XX.hbm.xml文 ...
- Rhythmk 学习 Hibernate 03 - Hibernate 之 延时加载 以及 ID 生成策略
Hibernate 加载数据 有get,跟Load 1.懒加载: 使用session.load(type,id)获取对象,并不读取数据库,只有在使用返回对象值才正真去查询数据库. @Test publ ...
- [Hibernate开发之路](4)ID生成策略
一 对象关系数据库映射之Id 被映射的类必须定义相应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每个实例包括唯一的标识. <id> 元素定义了该属性到数据库表主键字段 ...
- mybatis 针对SQL Server 的 主键id生成策略
SQL Server中命令: select newId() ,可以得到SQL server数据库原生的UUID值,因此我们可以将这条指令写到 Mybatis的主键生成策略配置selectKey中. ...
- JPA ID生成策略(转---)
尊重原创:http://tendyming.iteye.com/blog/2024985 JPA ID生成策略 @Table Table用来定义entity主表的name,catalog,schema ...
- 可实现的全局唯一有序ID生成策略
在博客园搜素全局唯一有序ID,罗列出来的文章大致讲述了以下几个问题,常见的生成全局唯一id的常见方法 :使用数据库自动增长序列实现 : 使用UUID实现: 使用redis实现: 使用Twitter的 ...
- 图解Janusgraph系列-分布式id生成策略分析
JanusGraph - 分布式id的生成策略 大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 本次更新时间:2020-9-1 文章为作者跟踪源码和查看官方文档整理,如有任何问题,请联 ...
随机推荐
- MVC、RPC、SOA、微服务架构之间的区别
MVC.RPC.SOA.微服务架构之间的区别 一.MVC架构 其实MVC架构就是一个单体架构. 代表技术:Struts2.springMVC.Spring.Mybatis 等等. 二.RPC架构 RP ...
- STM32CubeMx的使用分享
1. 新建立工程(以F103ZET6为例) 2. 配置引脚(以PA0为例) 3. 配置外设(以串口为例) 4. 配置时钟 5. 外设.GPIO.中断初始化 6. 生成工程 7. 添加自己的代码 8 ...
- shell 键盘录入和运算
一.read 命令,从键盘读入数据,赋给变量 1.脚本代码 #!/bin/sh read arg1 arg2 echo "第一个参数: $arg1" echo "第二个参 ...
- WinServer-授权规则
授权规则: 使用谓词可以限制网站只能使用某一种请求 来自为知笔记(Wiz)
- C#-WebService基础02
WebService WSDL是web service的交换格式 跨平台数据交互 什么是web服务 SOA 面向服务的体系结构 service-Oriented Architecture Servi ...
- hdu1213 How Many Tables(并查集)
How Many Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- sc.textFile("file:///home/spark/data.txt") Input path does not exist解决方法——submit 加参数 --master local 即可解决
use this val data = sc.textFile("/home/spark/data.txt") this should work and set master as ...
- ui5 load josn
sap.ui.jsview("ui5p.Test01", { /** Specifies the Controller belonging to this View. * In t ...
- c# 02-18 值类型 引用类型 字符串的不可变性 字符串的处理方法
1值类型 直接把值存在栈中 栈的特点是后进先出 int double decimal char struct enum bool 2 引用类型 把值存在堆中,把地址存在栈中: string 自定义的类 ...
- The Structure of an App-ios应用架构-MVC
During startup, the UIApplicationMain function sets up several key objects and starts the app runnin ...