我有三個相關的實體JPA實體批量刪除不工作
public class EntityA
{
private Long id;
}
public class EntityB
{
private Long id;
private EntityA entityA;
private EntityC entityC;
}
public class EntityC
{
private Long id;
}
Query query = persistenceManager.createNamedQuery("DELETE FROM EntityB a WHERE a.entityA = :entityA AND a.entityC.id in :entityCList"); query.setParameter("entityA", entityAObj); query.setParameter("entityCList", entityCList); query.executeUpdate();
我使用的MySQL數據庫。參數:entityCList
是entityC ids
的ArrayList
,即,List<Long> entityCList
和:entityA
是EntityA
的對象。
當我運行上面的刪除查詢時,記錄沒有從數據庫中刪除,也沒有拋出異常。查詢有什麼問題。
如果您使用的是Hibernate,它的doc明確地聲明連接不能用在where子句中:http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html_single/ #batch-direct – 2013-05-01 11:13:50
@JB Nizet你是對的。我正在使用休眠,我想這正是問題所在。有沒有任何解決方法呢? – 2013-05-01 14:18:34