Hibernate实现多对多关系映射有两种方法:
1.通过配置两个一对多来实现多对多,既三张数据表,三个实体,同时配置<component>组件模块,唯一缺点是要同时实现这个外键中间表的增删查改功能.
2.通过配置双方的<set>模块来实现,同时两个实体的bo对象都有对方的Set集合,而inverse必须设置主控方为false,被控方为inverse=true,如果双方都为true(即都为被控方)那就没人来维护关系,那么更新/删除数据时无论哪一方都不会去更新/删除中间表的数据...通过Hibernate配置后已经可以实现主控方删除时能删除本身数据和中间表数据,而被控方只能删除本身表的数据,中间表的数据仍然存在....要想实现被控方删除时同时删除中间表数据,需要去数据库中设置外键中间表的关联关系为delete cascade就可以了..
以下为hibernate配置:
User:
<set name="roles" table="userrole" inverse="false">
<key column="username"/>
<many-to-many class="com.incesoft.ui.bo.Role" column="id" />
</set>
Role:
<set name="users" table="userrole" inverse="true">
<key column="id"/>
<many-to-many class="com.incesoft.ui.bo.User" column="username" />
</set>
分享到:
相关推荐
Hibernate 一对多、多对一、级联、加载、反转
Hibernate配置文件中配置各种数据库的driver、URL
hibernate配置,详细的讲了hibernate用的配置文件和方法,可以哦
Hibernate配置详解,详细描述了Hibernate的配置文件,一对一 一对多,多对多的单双向配置详解。
Hibernate配置文件Hibernate配置文件Hibernate配置文件
hibernate同时配置多个数据库连接 可以同时连接不同IP的不同数据库
springboot2.0多数据源集成hibernate配置hibernateDaoSupport, dao层继承hibernateDaoSupport, 不使用jpa方式。
hibernate配置文件 里面提供了连接数据库 数据库使用的方言 是否打印SQL语句 sql语句的格式 以及对象-关系映射文件的地址等
逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件逆向生成hibernate配置文件
NULL 博文链接:https://1028826685.iteye.com/blog/1536060
Hibernate配置文件hibernate.cfg.xml中配置信息详解!
在hibernate中配置多数据库,并自由切换
hibernate所以配置以及简单的介绍
hibernate的配置介绍,在myeclipse中配置hibernate,hibernate已经在myeclipse中了,创建工程,然后在工程中添加hibernate框架,一些设置
SpringMVC+Spring+hibernate配置
NULL 博文链接:https://lichaobao.iteye.com/blog/1977048
JAVA 使用hibernate配置实例,包括普通java工程版本(不是web工程)和maven配置使用hibernate版本。
hibernate--5.Hibernate配置文件详解
使用反射机制修改加载到内存的Hibernate配置文件,使用该方法可以将数据库的配置信息提取到别的路径下。
关于hibernate的配置文件hibernate1.cfg.xml