2011-12-22 9 views
1

実施例Iは、このテーブルをHibernateはフィールド+最大の組み合わせで、非プライマリ・キーに値を生成

テーブルトランザクション

  • のID INT(PK)
  • ユニットはvarchar(10)
  • journal_numberを有します

ジャーナル番号は、ユニットとシーケンスの組み合わせです。例のデータはこのようになる可能性があります

id | unit | journal_number 
------------------------------ 
1 | 'unit1' | 1 
2 | 'unit1' | 2 
3 | 'unit2' | 1 
4 | 'unit2' | 2 

... 

私は自動的にjournal_numberを作成しますか?

これを手動で行わずに休止状態でこれを解決する方法はありますか? ジェネレーターの使用が好き

「unit1」の新しい行がある場合など、手動で行う必要がある場合。その後、私はこの

select max(journal_number) where unit = 'unit1' 

に持って、私は私はあなたのpoint.Butを得た場合、ヨーヨーが複合キーを望んでいるようだか分からない、新しい行

+0

あなたは複合Key.Ifを使用することができ、私はそれが –

+0

は私が多分複合キーがキーワードだと思いましたが、どのように電子番目journal_id自動的にシーケンスによって生成しますか? – ahmy

+0

いいえ、単なるキーワードではありません。解決策を探した後にcomposite-id –

答えて

0

に結果をasign。 の場合は、マッピングファイルで実行できる方法があります。

<composite-id name="MyKey" class="string"> 
    <key-property name="firstKey"/> 
    <key-property name="secondKey"/> 
</composite-id> 
関連する問題