HibernateのGenerator属性の7種類のclass

14363 ワード


HibernateのGenerator属性には7種類のclassがあり,この7種類のclassの意味と使い方を簡単に説明した.
1、identity:MySqlデータベース用.特徴:増加

   
   
   
   
  1. < id name="id" column="id">
  2.     < generator class="identity"/>
  3. < /id>

注意:MySqlデータベースでインクリメンタル・シーケンスを使用する場合は、テーブルの作成時にプライマリ・キーをauto_として指定する必要があります.incrementプロパティ.
2、sequence:Oracleデータベース用

   
   
   
   
  1. < id name="id" column="id">
  2.    < generator class="sequence">
  3.      < param name="sequence"> < /param>
  4.    < /generator>
  5. < /id>

3、native:データベース間で使用され、下位方言から生成されます.Default.sequenceはhibernate_sequence

   
   
   
   
  1. < id name="id" column="id">
  2.    < generator class="native"/>
  3. < /id>

注意:nativeを使用する場合、HibernateはデフォルトでOracleのhibernate_を検索します.sequenceシーケンス.Oracleにシーケンスがない場合は、Oracleデータベースに接続しているときにエラーが表示されます.
4、hilo:高低位合成idにより、表hi_を先に作成するvalue,列を再構築next_value.初期値が必要です.

   
   
   
   
  1. < id name="id" column="id">
  2.     < generator class="hilo">
  3.       < param name="table">high_val< /param>
  4.        < param name="column">nextval< /param>
  5.       < param name="max_lo">5< /param>
  6.     < /generator>
  7. < /id>  

5、sequencehilo:高すぎる低位合成idと同じように、sequenceシーケンスを構築し、テーブルを構築しない.

   
   
   
   
  1. < id name="id" column="id">
  2. < generator class="hilo">
  3. < param name="sequence">high_val_seq< /param>
  4. < param name="max_lo">5< /param>
  5. < /generator>
  6. < /id>

6、assigned:ユーザーカスタムid;

   
   
   
   
  1. < id name="id" column="id">
  2. < generator class="assigned"/>
  3. < /id>

7、foreign:一対一の関係でプライマリ・キーを共有する場合、2 id値は同じです.