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