これが私のシナリオです(私はdatanucleus、JDOを使用していますが、JPAにも当てはまると思います):
tx.begin();
Dog d = new Dog();
persistenceManager.persist(d);
d.setName("Doggie");
tx.commit();
上記のコードでは、「Doggie」という名前はデータベースに永続的ではありません。ただし、行うときは
tx.begin();
Dog d = new Dog();
d.setSize(10);
persistenceManager.persist(d);
Dog d2 = dogDao.getDogBySize(10);
d2.setName("Doggie");
tx.commit();
できます!
この動作は、最初の例ではオブジェクトが管理されていないのに対し、私の「2 番目の」犬は管理されたインスタンスであり、データベースから取り出されているという事実によるものですか?
これは JDO 固有の動作ですか?
ありがとう!