我正在使用oracle 12c和Hibernate 4.2.21,我想删除OnetoMany中的两个表。
我的方法是删除“表格”:
public void deleteAllRecords() {
Session session = HibernateSessionFactory.getSessionFactory()
.openSession();
try {
session.beginTransaction();
// String hql = String.format("TRUNCATE table MapField");
// Query query = session.createQuery(hql);
// query.executeUpdate();
Query q1 = session.createQuery ("DELETE FROM MapField");
int deleted = q1.executeUpdate ();
Query q2 = session.createQuery ("DELETE FROM MapRecord");
int deleted = q2.executeUpdate ();
} catch (Exception e) {
logger.error("Error :" + e);
session.getTransaction().rollback();
} finally {
session.close();
}
当我执行此操作时,我没有收到任何错误,只有这个:
INFO [stdout] (ServerService Thread Pool -- 60) Hibernate: delete from MapField
但是当我去检查Db中的表格时,行仍然在这里..
答案 0 :(得分:0)
尝试在q2.executeUpdate();
session.getTransaction().commit();