当插入查询失败或者发生了excpetion时,Hibernate会从二级缓存中移除所有缓存对象 - 如何防止它。请使用暗示

问题描述:

当插入查询失败或发生异常时,Hibernate会从第二级缓存中删除所有缓存对象 - 防止它。请建议当插入查询失败或者发生了excpetion时,Hibernate会从二级缓存中移除所有缓存对象 - 如何防止它。请使用暗示

+1

请添加[最小,完整和可验证](https://*.com/help/mcve)示例。没有它,你期望我们如何帮助你?既然这是你的第一个问题,你可以阅读[提问问题指南](https://*.com/help/how-to-ask)。 –

+0

添加示例: – Ahmed

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; 
}