解决Hibernate对象关联的List集合无法保存的问题

Web组小伙伴要做角色权限管理,新建角色后要Hibernate级联保存关联的班级,结果怎么都保存不上关联表,我也是很奇怪,查阅了Hibernate官方文档和CSDN上相关资料也没发现什么原因,最后各种尝试终于成功了。关键点是dao层保存的时候使用事务,然后调用saveOrUpdate方法。

实体类:

public class Role {

private List<Classs> classList;

// getter setter

}

映射文件:

<hibernate-mapping>
<class name=”cn.com.t600.ols.system.role.po.Role” table=”sys_role”>
// 省略其他部分
<list name=”classList” table=”sys_role_class” cascade=”all”>
<key column=”ref_roleId”></key>
<list-index column=”item_index”/>
<many-to-many column=”ref_classId” class=”cn.com.t600.ols.po.Classs”/>
</list>

</class>
</hibernate-mapping>

DAO:

//保存角色
public void saveRole(Role role) {
try {
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
session.beginTransaction();
session.saveOrUpdate(role);
session.getTransaction().commit();
log.debug(“save successful”);
} catch (RuntimeException re) {
log.error(“save failed”, re);
throw re;
}
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注