hibernate主键生成策略之sequence

sequence:DB二、Oracle均支持的序列,用于为long、short或int生成惟一标识
数据库中的语法以下:
Oracle:create sequence seq_name increment by 1 start with 1;
须要主键值时能够调用seq_name.nextval或者seq_name.curval获得,数据库会帮助咱们维护这个sequence序列,保证每次取到的值惟一,如:
insert into tbl_name(id, name) values(seq_name.nextval, ‘Jimliu’);

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

若是咱们没有指定sequence参数,则Hibernate会访问一个默认的sequence,是hibernate_sequence,咱们也须要在数据库中创建这个sequence
此外,sequence还能够有另一个参数是paramters,能够查看Hibernate的API了解它的用法,见org.hibernate.id.SequenceGenerator
调用数据库的sequence来生成主键,要设定序列名,否则hibernate没法找到:
      <param   name="sequence">NAME_SEQ</param>(Oracle中很经常使用)数据库

相关文章
相关标签/搜索