0
を削除私はは、持続性でJPA子エンティティを削除することはできません
Query q = em.createQuery("DELETE FROM Cities WHERE id = :id");
のようなプレーンなHQLで任意の行を削除することができますしかし、私は
Cities city = em.getReference(Cities.class, 8);
try {
em.getTransaction().begin();
em.remove(city);
em.getTransaction().commit();
}
catch(RuntimeException e) {
e.printStackTrace();
em.getTransaction().rollback();
}
ようにそれを削除すると、私は何の警告やエラー
を得ませんでしたモデルは簡単です
国(OneToManyアノテーションのみ)
@OneToMany(mappedBy = "country", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
private List<Cities> cities;
都市(のみFKフィールド)
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "country_id", nullable = false)
private Countries country;
私がしようとしていたものがあります:
1) trying to apply orphanRemoval = true
2) cascade = CascadeType.MERGE to Cities
3) em.refresh(city)
あなたは "警告とエラーはありません"と言っているので、エラーは発生しませんでした。だから質問は何ですか? – Namphibian
これらの変更後に結果が届きます。 try { em.getTransaction()。begin(); city.setCountries(null); em.refresh(city); em.remove(city); em.getTransaction()。commit(); } catch(RuntimeException e){ e.printStackTrace(); em.getTransaction()。rollback(); } – Nesquik27
問題は、子エンティティで削除FKを削除せずに上記のようにリフレッシュする理由です:( – Nesquik27