【发布时间】:2016-01-24 02:25:03
【问题描述】:
我正在构建一个新的动态网站,并在 Spring MVC 中创建了 2 个 DAO 类来管理 2 个不同表中的查询。 我需要知道如何使用 Hibernate 在单个事务中管理 2 个 DAO 方法...实际上,我创建了 2 个 DAO Java 类和相关的实现类:
第一个 DAO 类(FirstDAOImpl.java):
@Transactional(readOnly = false, rollbackFor=Exception.class)
public void insertUser(User user)
{
//do insert an user using hibernate...
}
第二个DAO类(SecondDAOImpl.java):
@Transactional(rollbackFor=Exception.class)
public void insertUserRole(UserRole register)
{
//do insert user role using hibernate...
}
在我的 Spring 控制器中,我需要在单个事务中调用两个 DAO 方法...
实际上,我对任何 DAO 方法都有一个新的事务方法:
@RequestMapping(value = "/new-user", method = RequestMethod.POST)
public String insertNewUser(Model model)
{
//Other code
try
{
firstDAO.insertUser(myUserObject);
secondDAO.insertUserRole(myUserRoleObject);
}
catch(Exception e)
{
logger.info("exception!");
}
//Other code
}
当插入新记录的方法insertUserRole()失败时,前一个方法insertUser()的事务执行成功,不回滚!
如何在一个事务中管理这两种方法?我会把这两个操作分开...
谢谢! :)
【问题讨论】:
标签: java hibernate spring-mvc dao transactional