• Hibernate持久化标志符生成策略


    generator子元素定义持久化标识符的生成策略,为持久化类对应的数据库表的主键找到了赋值方法,HIbernate默认将使用assigned的持久化标识符生成策略。
    关系型数据库的主键定义方式
    (1),用户自定义主键。单一主键或复合主键。
    (2),代理主键。
    Hibernate的内置持久化标识符生成器
    (1)increment(递增)用于为long short或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用,在集群中不要使用。
    (2),identity,对DB2、MySQL、MS SQLServer,Sybase和HypersonicSQL的内置标识字段提供支持。返回的标志符是long、short、或者int类型的。
    (3),sequence,使用序列
    (4),hilo(高低位),使用一个高/低位算法来高效的生成long short 或int类型的标志符。给定一个表和字段(默认为hibernate_unique_key和next)作为高位值的来源,高/低位算法生成的标志符只在一个特定的数据库中是唯一的。
    (5),native(本地)
    根据底层数据库的能力选择identity、sequence、或者hilo中的一个。
    (6),assigned(程序设置)
    让应用程序在save()之前为对象分配一个标志符。
    (7),foreign(外部引用)
    使用另外一个相关联对象的标识符。与<one-to-one>联合一起使用,用在基于主键关联的一对一关联。

    composite-id元素来映射复合主键

    <composite-id>

      <key-property name="id" type="long" />  

      <key-property name="owner" type="String" />

    </composite-id>

  • 相关阅读:
    C#界面交互Invoke的便捷写法
    C#简单线程同步例子
    输出一个数据库中所有表的数据量
    JavaScript 解析xml字符串
    图片与Byte流互转
    html中name 和 id 的区别
    JavaScript 解析xml文件
    关于序列化的使用
    js 动态创建xml串
    js动态删除节点
  • 原文地址:https://www.cnblogs.com/happinessqi/p/3496353.html
Copyright © 2020-2023  润新知