美文网首页
ihbernate详解(六)常见的映射元素

ihbernate详解(六)常见的映射元素

作者: 秀逼 | 来源:发表于2017-10-31 23:48 被阅读0次

    increment标识符生成器

    标识符生成器由hibernate以递增的方式为代理主键赋值

    <id name="id" type="long" column="ID">
      <generator class="increment"></generator>
    </id>
    

    适用范围:

    • 由于increment生成标识符的机制不依赖于底层的数据库系统(由hibernate生成),因此它适用于所有的数据库系统
    • 只适用于单个hibernate应用访问同一数据库的场合,在集群环境下不推荐使用它
    • OID必须为long,int或者short类型,如果把OID定义为byte类型,在运行时会抛出异常。

    identity标识符生成器

    它是由底层数据库来负责生成标识符(记录的主键),它要求底层数据库把主键定义为自动增长的字段类型,例如:在mysql中应该把主键定义为auto increment类型。

    <id name="id" type="long" column="ID">
      <generator class="identity"></generator>
    </id>
    

    适用范围:

    • 由于identity生成标识符的机制依赖于底层的数据库系统(由hibernate生成),因此要求底层数据库系统必须支持自动增长的字段类型。支持自动增长字段类型的数据库包括mysql等。
    • 只适用于单个hibernate应用访问同一数据库的场合,在集群环境下不推荐使用它
    • OID必须为long,int或者short类型,如果把OID定义为byte类型,在运行时会抛出异常。

    sequence标识符生成器

    它是由底层数据库提供的序列来生成标识符

            <id name="id" column="ID" type="long">
                <generator class="sequence">
                    <param name="sequence"></param>
                </generator>
            </id>
    

    适用范围:

    • 要求底层数据库系统必须支持序列
    • OID必须为long,int或者short类型,如果把OID定义为byte类型,在运行时会抛出异常。

    hilo标识符生成器

    由hibernate按照一种high/low算法来生成标识符,他从数据库的特定表的特定字段中获取high值

    使用方法:
    hilo算法即是id = hi*(max_low+1) + low;low值在0-max_low-1中进行循环,low值每循环一圈,hi值就增加1

    适用范围:

    • hilo不依赖于底层的数据库系统,因此适用于所有的数据库系统
    • OID必须为long,int或者short类型,如果把OID定义为byte类型,在运行时会抛出异常。

    native标识符生成器

    根据底层数据库对自动生成标识符的支持能力,来自动选择使用identify,sequence,还有hilo标识符生成器。native能自动判断底层数据库系统提供的生成标识符的机制。选择identify还是sequence还是hilo标识符生成器。
    使用方法:

    <id name="id" type="long" column="ID">
      <generator class="native"></generator>
    </id>
    

    适用范围:

    • 由于native 能自动根据底层数据库系统的类型,来自动选择适合的标识符生成器。因此很适合跨数据库平台的开发,即同一个hibernate应用需要连接多种数据库系统的场合。
    • OID必须为long,int或者short类型,如果把OID定义为byte类型,在运行时会抛出异常。

    主意 :

    当Oracle数据库报hibernate_sequence错误的时候,可以创建hibernate-sequence这么一个序列,这样就可以避免报错。

    相关文章

      网友评论

          本文标题:ihbernate详解(六)常见的映射元素

          本文链接:https://www.haomeiwen.com/subject/tkgipxtx.html