当插入查询失败或者发生了excpetion时,Hibernate会从二级缓存中移除所有缓存对象 - 如何防止它。请使用暗示
问题描述:
当插入查询失败或发生异常时,Hibernate会从第二级缓存中删除所有缓存对象 - 防止它。请建议当插入查询失败或者发生了excpetion时,Hibernate会从二级缓存中移除所有缓存对象 - 如何防止它。请使用暗示
答
public Response createOrUpdateRouting(Routing request) {
`Transaction tr = null;`
appLog = AppLog.getAppLog();
response = new Response();
if (null != this.sessionFactory) {
session = this.sessionFactory.openSession();
} else if (this.sessionFactory == null) {
sessionFactory = HibernateUtil.getSessionFactory();
session = this.sessionFactory.openSession();
}
try {
tr = session.beginTransaction();
session.save(request);
response.setStatus(Status.SUCCESS);
response.setResponseCode(HttpStatus.SC_OK);
if(null != request && request.getId() > 0){
response.setResponseMsg(Constants.UPDATE_MSG);
}else{
response.setResponseMsg(Constants.SUCESS_MSG);
}
session.flush();
tr.commit();
} catch (Exception ex) {
tr.rollback();
appLog.error("Exception occurred in createOrUpdateRouting", ex);
response.setStatus(Status.FAILURE);
response.setResponseCode(HttpStatus.SC_INTERNAL_SERVER_ERROR);
response.setResponseMsg(ex.getMessage());
} finally {
session.close();
}
return response;
}
请添加[最小,完整和可验证](https://stackoverflow.com/help/mcve)示例。没有它,你期望我们如何帮助你?既然这是你的第一个问题,你可以阅读[提问问题指南](https://stackoverflow.com/help/how-to-ask)。 –
添加示例: – Ahmed