配置id序列休眠生成器

时间:2011-08-09 10:03:08

标签: java oracle hibernate

我可以配置Hibernate在实际插入之前不要将select seq.nextval作为单独的调用吗?

org.hibernate.jdbc.AbstractBatcher about to open PreparedStatement (open PreparedStatements: 0, globally: 0) 
org.hibernate.SQL select SEQUENCE_1.nextval from dual 
org.hibernate.id.SequenceGenerator auditor50 - Sequence identifier generated: 122797 
org.hibernate.jdbc.AbstractBatcher auditor50 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 

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

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的。但我不知道它会有什么不同。如果您出于性能原因而想这样做:

  1. 您是否测量过两种方法之间的显着差异?
  2. 你知道Hibernate的序列ID生成器实际上是一个hilo序列ID生成器,它只能在每N次插入时获得下一个值(N默认为50,IIRC),这使得它肯定比你想象的要快?