0
我可以通过普通的HQL删除任何行一样无法删除的持久性JPA子实体删除
Query q = em.createQuery("DELETE FROM Cities WHERE id = :id");
但我想删除它像
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
我在这些更改后达到结果: 尝试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