JPA/休止状態を使用しています。新しいオブジェクトを永続化しているときに、参照先フィールドのルックアップを行う必要があることに気付きました。たとえば、Person と Address と 1 対 1 の関係があるとします。そして、各アドレスが 1 人の人物のみを参照するようにします。そして、アドレスを永続化するために Person を検索する必要がある Person のプライマリキーを知っています。
@Transactional
public void saveAddressFor( Long personId, <adddress_details> ) {
Address address = new Address();
address.setOwner( em.getReference( Person.class, personId ) );
address.setAddress( <address_details> );
em.persist( address );
}
#getReference を使用して Person PKEY を知っているので、挿入時に設定するための PKEY を取得するためだけに検索する必要がないことを望んでいました。しかし、SQL トレースを調べると、トランザクションの最後に、INSERT を実行する前に実際に Person を検索していることがわかります。
このルックアップを回避する方法はありますか? それは大したことではありません。不要なだけです。可能であれば、これらを取り除きたいと思います。