-1

hbm.xml にカスタム ID ジェネレーターを導入しました。しかし、場合によっては、カスタム Id ジェネレーターをトリガーしたくないテーブルに明示的な ID を保持する必要があります。これを行う方法はありますか?または、複数のカスタム id ジェネレーターを用意し、実行時にそれらを切り替えるオプションはありますか?

4

2 に答える 2

1

のjavadocを見るIdentifierGenerator.generate(SessionImplementor session, Object object)

パラメータ:
session -
オブジェクト- ID が生成されるエンティティまたはトップレベル コレクション
戻り値:
新しい識別子

おそらく解決策は、@Id注釈付きフィールドをチェックして、フィールドが手動で値付けされたかどうかを確認するか、ドメインオブジェクトにカスタムインターフェイスを実装させ、抽出クラスを作成して永続化オブジェクトから何らかの方法で情報を抽出できるようにすることです (リフレクション、手動で記述されたコード、またはその他のソリューション)

于 2013-09-06T11:16:26.893 に答える
1

ジェネレーターを使用したいときとスキップしたいときのロジックを自分で実装できる場合は、 @PrePersist アノテーションを使用してこれを実行できるはずです。次の投稿を参照してください。

Hibernate: 生成された ID をバイパスする場合がある

お役に立てれば。

サラ

于 2013-09-12T03:04:27.117 に答える