2017-04-26 20 views
0

JSF 2.2とHibernate 4.3.11のバージョンを使用してWebアプリケーションを構築しています。Hibernateは、hbmファイルの<generator class = "increment" />を自動生成しました。

Eclipse Hibernateコード生成ツールを使用して、POJOクラスを完全に生成し、hbm.xmlファイルをマップしました。

ただし、hbm.xmlファイルでは、プライマリキーのデフォルトのジェネレータクラスが「割り当てられている」ため、ユーザーはid値を自分で設定する必要があります。

一方、私の目標は、<generator class="increment" />

を使用してHibernateがインクリメンタルに主キーシーケンスを設定することで、「増分」値を自動的にhbm.xmlを生成する方法はありますか?

各コードの生成後、すべての+100 hbm.xmlファイルを「割り当て済み」から「インクリメント」に変更することは実際には不可能です。

答えて

0

Hibernateは、oracleのms-sqlまたはseq.nextvalの@@ identityのようなデータベース機能を使用できます。 しかし、休止状態のインクリメントを使用する必要がある場合は、それが有用でないことを知る必要があります。 hibernateはテーブルの各レコードを挿入する前にテーブルのmax idを見つけなければならないので、hibernate execute "select max(id from)from table"を実行する必要があります。そしてあなたはそれを変更することができます。 同時プロセスでは、一意の制約エラーがデッドロックされています。

よろしくお願いします。a.ayati

関連する問題