0
我有一个查询休眠事务。休眠事务查询
在我的应用程序中,我列出了应该作为整体插入或不插入的数据。根据业务逻辑,我需要从该表中删除所有数据并添加插入完整列表。列表包含超过10万条记录。以下是我的交易代码。这是错误的,因为它在太长数据的一个查询异常的情况下不回滚。你能不能让我知道它的错误部分?
public boolean deleteAndSaveAll(ArrayList<MyData> listBean) throws Exception {
boolean transactionCompleted = false;
Session session = HibernateUtils.currentSession();
Transaction tx = session.beginTransaction();
try {
String stringQuery = "DELETE FROM MyData";
Query query = session.createQuery(stringQuery);
query.executeUpdate();
for (MyData MyData : listBean) {
session.save(MyData);
}
tx.commit();
transactionCompleted = true;
} catch (Exception e) {
MyUtils.log("DAO: MyDataDAO error while deleteAndSaveAll : "+e.getMessage());
e.printStackTrace();
if(tx != null){
tx.rollback();
}
throw e;
}finally{
HibernateUtils.closeSession();
}
return transactionCompleted;
}
你应该使检查点和回滚到最后保存检查点 –
但几乎每个地方的例子,休眠给了这种例子。不知道为什么它不起作用。仍然感谢您的建议。我会搜索它相同的。 – Ketan