2017-02-01 16 views
1

私は親テーブルと子テーブルを持っています。親レコードはすでに別のプロセスによって挿入されています。私は、例えば、親レコードを参照する子レコードを追加する必要があります。Hibernate:既存の親レコードを参照して子レコードを挿入する

PARENT 
=========== 
PARENT_ID PK 
ADDRESS  UNIQUE 

CHILD 
=========== 
CHILD_ID PK 
PARENT_ID FK 
ADDRESS UNIQUE 

子レコードを挿入し、私は親レコードを参照するために持っている唯一の情報は、アドレスです。子のFKを設定するには、子のADDRESSを使用して親テーブルからPARENT_IDをフェッチする必要があります。

hibernateでこれを行う方法があります。そうすれば、ADDRESSによって親レコードを子レコードに挿入する必要はありません。または、私はADDRESSによってPARENTのクエリを実行し、PARENTオブジェクトを子に渡すこのパスを続行しますか?

答えて

0

私の意見では、あなたは間違いなくアドレスで親を読んで、その参照を子に設定して子供を救うべきだと思う。

それ以外の場合は、ソリューションの移植性を失うため、常に最後の手段であるべきである種のネイティブクエリを使用する必要があります。

HQLの一括操作(UPDATEなど)は、暗黙的でも明示的でもないため、単一のクエリで操作全体を実行する必要があるため、ネイティブクエリが残っています。

私の意見では、あなたの呼び出しです。

関連する問題