私は関係マスタースレーブがあるとします。データベースには、id = 1のテーブルMasterに1つの行が存在します。 は、なぜ、この次のコードの作業を行います。分離エンティティを参照するのはなぜですか?jpa hibernate
Slave slave = new Slave();
slave.setId(1L);
Master master = new Master();
master.setId(1L);
slave.setMaster(master);
em.persist(slave);
だから、マスターは、エンティティをデタッチし、後にスレーブとマスターの間refenceが作成されたコミットされています。どうして?私は、thikinfのケースでは、データベースから "find"関数を使ってMaster行を読み取る必要があると思います。 どこで詳細を読むことができますか?
あなたのトランザクション境界とは何ですか?エンティティにはどのように注釈が付けられますか?詳細は、JPA 2.0の仕様をお読みください。 –
この場合、JPAは指定されたマスタのIDのみを使用します。 JPAはすでにIDが1Lのマスターがテーブルに存在するため、新しく作成されたスレーブをうれしく挿入します。 –