は、これらのオブジェクトのみの作業がから()メソッドを見つけてしまったのEntityManagerの(オブジェクトの実体)メソッドを削除していますか?javax.persistence.Entitymanager:削除()メソッド
は、私は次のコードスニペットがあります
public void deletePerson() {
EntityManager em = getEntityManager();
Person p = new Person("x", "y", 200);
em.remove(p);
}
をしかし、それは、データベースから特定のエントリを削除されていません。
public void deletePerson() {
EntityManager em = getEntityManager();
Person p = em.find(Person.class, 200);
em.remove(p);
}
するとそれが正常に動作しています:私は以下のようなものを試してみました
。
em.remove(em.merge(person)) - 人物がデータベースから取得された場所 - オブジェクトを削除する正しい方法? – dendini
@dendiniいいえ、 'person'がデータベースから取得された場合、それはデータベースに存在することを意味します。ですから、この場合、直接 'em.remove(person)'を呼び出すことができます。 –
したがって、SELECTとDELETEが必要です。これは2つのクエリであり、1つのネイティブDELETEで実行できます。なぜJPAについては冗長なのでしょうか? – sura2k