Реализация HiLo NHibernate ID генератора
Я хотел бы использовать генератор "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>
Таблица БД "Cat" CatId bigint NOT NULL Имя varchar(16) NOT NULL Sex char(1) NULL Вес по умолчанию 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, показанная в их уроке, работает хорошо, но дает 99,12% фрагментации, когда я добавляю в цикл объекты из 20K cat. Может кто-нибудь указать мне пример реализации "hilo" или дать совет, что я пропускаю?
Благодарю.
2 ответа
Это решение решило мою проблему. Это довольно просто, не знаю, почему на сайте nhibernate нет такого маленького примера.