2009-08-31 6 views
8

私は自分のIDジェネレータとしてNHibernate HiLoを使用しています。私は現在、自分のエンティティテーブルごとにデータベースにsepperateテーブルを持っています。たとえば、CustomerとCustomerKeyテーブルがあり、それぞれにNextHiLoカラムがあります。NHibernate HiLo - すべてのエンティティ用に1つのテーブル

大きなものは、他のすべてのキーを保持する単一のテーブルです。私はこのようなテーブルを持っていることができればIdealyは次のようになります。

TableName | NextHiLo 
Customer | 19 
Invoice | 5 
Receipt | 3 

NHibernateの持つ可能というisnt't場合は、次善の策は、次のようになります。

CustomerHiLo | InvoiceHiLo | ReceiptHiLo 
19 | 5 | 3 

はかのう上記の二つのオプションのいずれかであります達成するために - NHibernateによって生成されたスキーマ生成スクリプトは、それらのいずれかをサポートするためのものではありませんか?

+0

私はこの質問が古いことを知っていますが、どうやってこれを解決しましたか?私は同じ問題を解決しようとしています。私はあなたの最初のアプローチをわずか2列で試してみましたが、私のIDは複数のテーブルにわたって連続しているようです。 –

答えて

12

hiloジェネレータのwhereプロパティを使用してみましたか? 何かのように:

<class name="Customer"> 
    <id name="Id"> 
     <generator class="hilo"> 
      <param name="where">TableName = 'Customer'</param> 
      ... 
     </generator> 
    </id> 
    ... 
</class> 
関連する問題