2009-08-18 20 views
2

私はデータベースにエンティティを保持するためにhibernateを使用しています。当面はderby DBですが、すぐにoracle DBに移動します。私classname.hbm.xmlでHibernateのインクリメント開始番号

私はIDは、次のような定義されています:

<id name="id" type="long"> 
     <column name="ID"/> 
     <generator class="increment"/> 
</id> 

私はidの開始値を設定するにはどうすればよいですか?私はそれが1ではなく10000のようなものから始めたいと思っています。

答えて

2

は、IncrementGeneratorが最高の主キーをオフに基づいて動作すること表示されますが、修正しない限り、あなたの主キー(私はお勧めしません)は、その機能に固執しています。

異なる戦略を勧めますが、どちらか... Hibernateのドキュメントを見て、マシンのクラスタでは安全ではないかもしれ強化識別子ジェネレータ:

http://docs.jboss.org/hibernate/stable/core/reference/en/html/mapping.html#mapping-declaration-id-enhanced

+0

このリンクは無効です。 – Muhd

5

IDの生成に「増分」は本当に良い考えではありません。

Oracleに移行する場合は、シーケンスを使用してIDを生成し、シーケンスはOracleによって制御されるため、必要な値でシーケンスを開始できます。

ダービーのサポートあなたはworkにそれを得るために3.6をHibernateに必要なものの10.6のようsequences、..私はあなたができるとは思わない

1

ジェネレータータイプインクリメント表の最大数値の主キー値をルックアップし、1つずつインクリメントします。

ジェネレータタイプネイティブは、使用する基盤データベースがOracleの場合にシーケンスを使用します。シーケンスの値を任意の開始値に簡単に増やすことができます。

関連する問題