JPAとHibernateは、エンティティの取得と永続化に使用されます。 User
テーブルがあり、別のテーブルで表されるCountry
が含まれています。ManyToMany/ManyToOne関係(JPA)で既存のエンティティを自動的に再利用
User
テーブルに新しいユーザーを追加します。この新しいユーザーは、既にCountry
テーブルに挿入されている国からのものです。新規ユーザーを既存の国に割り当てるには、国オブジェクトをデータベースから取得してUser
オブジェクトに設定することができます。これは期待どおりに機能し、ユーザーと既存の国との間に関係が作成され、Country
テーブルには新しい行は挿入されません。
JavaのJPAエンティティのCountry
オブジェクトに設定した値だけで、Country
オブジェクトをデータベースから取得せずに同じ動作をさせることはできますか?私はコードがUSA(コードは、国テーブルの列に保存され、それが一意である)である国は、すでに存在する場合はJPA/Hibernateが自動的にチェックしたい
User user = new User("test user");
user.setCountry(new Country("USA"));
entityManager.persist(user);
:たとえば
データベース。存在する場合は、既存のCountryオブジェクトを使用して、データベース内の新しいエントリが作成されない場合は作成しません。新しいカントリーをCountryテーブルに挿入します。
ありがとうございました!