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中很经常使用)数据库