1.Student.hbm.xml配置

  1. <hibernate-mapping package="com.wxh.hibernate.model">
  2. <class name="Student" >
  3. <id name="id">
  4. <generator class="uuid"></generator>
  5. </id>
  6. <property name="age"></property>
  7. <property name="name"></property>
  8. </class>
  9. </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类型。

  1. <hibernate-mapping package="com.wxh.hibernate.model">
  2. <class name="Student" >
  3. <id name="id">
  4. <generator class="uuid"></generator>
  5. </id>
  6. <property name="age"></property>
  7. <property name="name"></property>
  8. </class>
  9. </hibernate-mapping>
native

selects identitysequence or hilo depending
upon the capabilities of the underlying database.

2.Annotation配置_IDENTITY_SEQUENCE

  1. @Id
  2. @GeneratedValue(strategy=GenerationType.IDENTITY)
  3. public int getId() {
  4. return id;
  5. }

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping package="com.wxh.pojo">
  6. <!-- name相应类名称 -->
  7. <class name="Student" >
  8. <!-- name相应属性名字 -->
  9. <id name="stuNo">
  10. <!--
  11. ID生成策略:针对不同的数据库对象使用不同的id生成方式
  12. identity:mysql,mssqlservler(整型列)
  13. sequence:oracle,db2(整型列)
  14. uuid:一般用于字符串类型的主键
  15. guid:同上(一般用于mysql,sqlserver)
  16. native:经常使用配置(依据不同的数据库自己主动选择使用identity,sequence。hilo中的当中一个作为生成策略)
  17. -->
  18. <generator class="native">
  19. <!-- 设置自己定义序列的名字 -->
  20. <param name="sequence">auto_sid</param>
  21. </generator>
  22. </id>
  23. <property name="name" column="stuname" length="16" not-null="true" unique="false">
  24. </property>
  25. <property name="major" length="32"></property>
  26. <property name="comingYear"></property>
  27. <property name="type" length="16"></property>
  28. </class>
  29. </hibernate-mapping>

Teacher.hbm.xml

  1. <?xml version="1.0" encoding="UTF-8"?
  2.  
  3. >
  4. <!DOCTYPE hibernate-mapping PUBLIC
  5. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  6. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  7. <hibernate-mapping package="com.wxh.pojo">
  8. <!-- name相应类名称 -->
  9. <class name="Teacher" >
  10. <!-- name相应属性名字 -->
  11. <id name="tid">
  12. <!--
  13. ID生成策略:针对不同的数据库对象使用不同的id生成方式
  14. identity:mysql,mssqlservler(整型列)
  15. sequenceoracle,db2(整型列)
  16. uuid:一般用于字符串类型的主键
  17. guid:同上(一般用于mysqlsqlserver
  18. native:经常使用配置(依据不同的数据库自己主动选择使用identitysequencehilo中的当中一个作为生成策略)
  19. -->
  20. <generator class="native">
  21. <!-- 设置自己定义序列的名字 -->
  22. <param name="sequence">auto_tid</param>
  23. </generator>
  24. </id>
  25. <property name="tname" length="16" not-null="true" unique="false">
  26. </property>
  27.  
  28. </class>
  29. </hibernate-mapping>

hibernate ID生成策略配置的更多相关文章

  1. hibernate(四)ID生成策略

    一.ID生成策略配置 1.ID生成方式在xml中配置方式: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping P ...

  2. Hibernate学习笔记2.4(Hibernate的Id生成策略)

    通过设置告诉id该怎么设置. 1.通过xml方式 1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据 ...

  3. Hibernate系列之ID生成策略

    一.概述 hibernate中使用两种方式实现主键生成策略,分别是XML生成id和注解方式(@GeneratedValue),下面逐一进行总结. 二.XML配置方法 这种方式是在XX.hbm.xml文 ...

  4. Rhythmk 学习 Hibernate 03 - Hibernate 之 延时加载 以及 ID 生成策略

    Hibernate 加载数据 有get,跟Load 1.懒加载: 使用session.load(type,id)获取对象,并不读取数据库,只有在使用返回对象值才正真去查询数据库. @Test publ ...

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

    一 对象关系数据库映射之Id 被映射的类必须定义相应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每个实例包括唯一的标识. <id> 元素定义了该属性到数据库表主键字段 ...

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

    SQL Server中命令: select newId()  ,可以得到SQL server数据库原生的UUID值,因此我们可以将这条指令写到 Mybatis的主键生成策略配置selectKey中. ...

  7. JPA ID生成策略(转---)

    尊重原创:http://tendyming.iteye.com/blog/2024985 JPA ID生成策略 @Table Table用来定义entity主表的name,catalog,schema ...

  8. 可实现的全局唯一有序ID生成策略

    在博客园搜素全局唯一有序ID,罗列出来的文章大致讲述了以下几个问题,常见的生成全局唯一id的常见方法 :使用数据库自动增长序列实现 : 使用UUID实现:  使用redis实现: 使用Twitter的 ...

  9. 图解Janusgraph系列-分布式id生成策略分析

    JanusGraph - 分布式id的生成策略 大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 本次更新时间:2020-9-1 文章为作者跟踪源码和查看官方文档整理,如有任何问题,请联 ...

随机推荐

  1. MVC、RPC、SOA、微服务架构之间的区别

    MVC.RPC.SOA.微服务架构之间的区别 一.MVC架构 其实MVC架构就是一个单体架构. 代表技术:Struts2.springMVC.Spring.Mybatis 等等. 二.RPC架构 RP ...

  2. STM32CubeMx的使用分享

    1. 新建立工程(以F103ZET6为例) 2. 配置引脚(以PA0为例)   3. 配置外设(以串口为例) 4. 配置时钟 5. 外设.GPIO.中断初始化 6. 生成工程 7. 添加自己的代码 8 ...

  3. shell 键盘录入和运算

    一.read 命令,从键盘读入数据,赋给变量 1.脚本代码 #!/bin/sh read arg1 arg2 echo "第一个参数: $arg1" echo "第二个参 ...

  4. WinServer-授权规则

    授权规则: 使用谓词可以限制网站只能使用某一种请求 来自为知笔记(Wiz)

  5. C#-WebService基础02

    WebService WSDL是web service的交换格式 跨平台数据交互 什么是web服务 SOA 面向服务的体系结构  service-Oriented Architecture Servi ...

  6. hdu1213 How Many Tables(并查集)

    How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

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

  8. ui5 load josn

    sap.ui.jsview("ui5p.Test01", { /** Specifies the Controller belonging to this View. * In t ...

  9. c# 02-18 值类型 引用类型 字符串的不可变性 字符串的处理方法

    1值类型 直接把值存在栈中 栈的特点是后进先出 int double decimal char struct enum bool 2 引用类型 把值存在堆中,把地址存在栈中: string 自定义的类 ...

  10. The Structure of an App-ios应用架构-MVC

    During startup, the UIApplicationMain function sets up several key objects and starts the app runnin ...