настроить генератор идентификаторов последовательности hibernate - PullRequest
3 голосов
/ 09 августа 2011

Могу ли я настроить Hibernate так, чтобы он не выполнял select seq.nextval из dual как отдельный вызов перед фактической вставкой?

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 Ответ

1 голос
/ 09 августа 2011

Я не думаю, что это возможно. Но я не знаю, какая разница. Если вы хотите сделать это по соображениям производительности:

  1. Измеряли ли вы значительную разницу между обоими подходами?
  2. Знаете ли вы, что генератор идентификатора последовательности в Hibernate на самом деле является генератором идентификатора последовательности hilo и что он получает только следующее значение при каждом N вставляемых (N по умолчанию 50, IIRC), что делает его, безусловно, быстрее, чем вы думаете
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...