原来用hibernate一直都是一个session操作一个对象,今天上司指导了一下,原来hibernate中一个session是可以处理两种不同的对象的,这种情况还是蛮少遇到的,所以记录一下
public void modifyGroup(GroupPO group,List<UserPO> list) throws Exception {
// 修改Group
Session session = null;
Transaction trans = null;
try {
session = HibernateSessionFactory.getSession();
trans = session.beginTransaction();
session.update(group);
// 在hibernate中配置的关系
Set<UserPO> UserSet = group.getBusinessUsers();
for(UserPO temp:UserSet) {
temp.setUserID(temp.getId());
}
// 删除老的User关系
for(UserPO User:list) {
session.delete(User);
}
trans.commit();
} catch(Exception e) {
if (trans != null) {
trans.rollback();
}
// throw Exception
throw e;
} finally {
// close session
if (session != null) {
session.close();
}
}
}