0
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public Integer createUsers(final Collection<MyUser> myUsers) {
final Session session = sessionFactory.getCurrentSession();
for (final MyUser myUser : myUsers) {
/*create auto id from db and asscoiate object with session */
session.save(myUser);
myUser.setPassword("password");
}
return myUsers.size();
}
新的密码会自动保存到数据库因为会话配有对象。除非对象实例从会话分离/驱逐,否则对此方法/会话中myUser 的任何进一步更改现在都会持久保存到数据库。休眠会话范围
当方法已经完成,事务关闭,并且会话超出范围;如果我从这个方法返回一个MyUser对象,那么这个方法以外的任何更改(例如我的控制器中的临时更改)都不会持久化到数据库(除非我与另一个会话和事务相关联)?
问题或疑问是什么?你是否要确认你的解释? – Vlad 2012-01-05 10:47:27