hibernate的one-to-many
来源:互联网 发布:linux复制压缩文件命令 编辑:程序博客网 时间:2024/05/18 01:07
文章说的是hibernate的多对多关联映射,但是这里借鉴的是一对多这边的配置文件的写法
Hibernate多对多关联映射通常别拆分成两个多对一关联映射
1、 下面的HostBean、UserBean、UserHostBean,UserHostBean是两个表之间的关联表,分别跟HostBean和UserBean都是多对一的关联关系,可以发现中间表始终是多的一端。
2、因此配置文件中是这样的,在中间表UserHostBean中
<many-to-one name="user" class="UserBean" not-null="true" lazy="false">
<column name="user_id" />
</many-to-one>
<many-to-one name="host" class="HostBean" not-null="true" lazy="false">
<column name="host_id" />
</many-to-one>
分别设置中间表的两个关联字段;在另外本身是多对多关联的两个表中
<set name = "users" lazy="false" cascade="save-update" inverse="true">
<key column="user_id"></key>
<one-to-many class="UserHostBean"/>
</set>
<set name="hosts" lazy="false" cascade="save-update" inverse="true">
<key column="host_id"></key>
<one-to-many class="UserHostBean"/>
</set>
这个column:user_id是由一指向多的那端的一个维护关系字段,因此跟many-to-one中的关联字段名称要一致
3、 关联的CRUD操作:
Create:原则还是跟多对一样,先保存多的一端然后再保存一端,分别setHost和setUser,从而在这两者间建立关联
Example:
HostBean:
<hibernate-mapping>
<class name="HostBean" table="t_host">
<id name="id" column="id" type="integer">
<generator class="increment"></generator>
</id>
<set name = "users" lazy="false" cascade="save-update" inverse="true">
<key column="user_id"></key>
<one-to-many class="UserHostBean"/>
</set>
</class>
</hibernate-mapping>
UserBean
<hibernate-mapping>
<class name="UserBean" table="users">
<id name="id" column="id" type="integer">
<generator class="increment"></generator>
</id>
<set name="hosts" lazy="false" cascade="save-update" inverse="true">
<key column="host_id"></key>
<one-to-many class="UserHostBean"/>
</set>
</class>
</hibernate-mapping>
UserHostBean
<hibernate-mapping>
<class name="UserHostBean" table="t_user_host">
<id name="id" column="id" type="integer">
<generator class="increment"></generator>
</id>
<property name="lastVisitDate" column="last_visit_date" type="string"/>
<many-to-one name="user" class="UserBean" not-null="true" lazy="false">
<column name="user_id" />
</many-to-one>
<many-to-one name="host" class="HostBean" not-null="true" lazy="false">
<column name="host_id" />
</many-to-one>
</class>
</hibernate-mapping>
- Hibernate的one-to-many
- hibernate的one-to-many
- hibernate的one-to-many
- hibernate的one-to-many和many-to-one实例
- hibernate one-to-many与many-to-one的使用
- Hibernate one-to-many many-to-one 的配置
- Hibernate one-to-many && many-to-many 的关系映射
- 【SSH商城】--- Hibernate 的many-to-one;one-to-many;many-to-many
- hibernate many-to-one // one-to-many
- hibernate many-to-one
- hibernate one to many
- Hibernate one-to-many
- hibernate:many to one
- hibernate--one-to-many
- Hibernate <many-to-one属性的设置
- hibernate的one-to-many实例
- hibernate的级联-----many-to-one
- Hibernate的注解many-to-one
- 按xml方式封装通信数据方法
- mysql offset 和 limit
- 1、hibernate入门1
- 异步FIFO的FPGA实现
- json解析是出现 unclosed.str.lit
- hibernate的one-to-many
- 学习iOS动画看我就够了!!转载
- 收集的网络资源
- 正则表达式简介
- 【FFMpeg视频开发与应用基础】六、调用FFMpeg SDK实现视频文件的转封装
- silverlight visifire 图表辅助类
- SysTick_Config配置systic中断间隔时间
- js中的preventDefault与stopPropagation详解
- JSON数据封装