「hilo」ジェネレーターを使用したいのですが、NH のドキュメントにあるように「特定の」テーブルを作成する方法とそれに渡す値の完全な例はありません。NH チュートリアルから抜粋した次のコード フラグメント
public class Cat
{
private Int64 id;
private string name;
private char sex;
private float weight;
public Cat()
{}
public virtual Int64 Id
{
get { return id; }
set { id = value; }
}
....
}
マッパー
<hibernate-mapping ...>
<class name="Cat" table="Cat">
<id name="Id" >
<column name="CatId" sql-type="Int64" not-null="true"/>
<generator class="hilo"/>
</id>
<property name="Name">
<column name="Name" length="16" not-null="true" />
</property>
....
</class>
</hibernate-mapping>
DB table "Cat" CatId bigint NOT NULL Name varchar(16) NOT NULL Sex char(1) NULL Weight real NULL は、デフォルトではデータベースに何も作成しません。
「id」ノードのパラメーター
<param name="table">hi_value</param>
<param name="column">next_value</param>
<param name="max_lo">100</param>
「無効なオブジェクト名 'hi_value'」エラー メッセージが表示されますが、それらがないと、「無効なオブジェクト名 'hibernate_unique_key'」が表示されます。
チュートリアルに示されている Cuid.Comb はうまく機能しますが、20K の猫オブジェクトをループに追加すると、99.12% の断片化が発生します。誰かが「hilo」実装の例を教えてくれますか、それとも私が欠けているものを教えてくれますか?
ありがとう。