Hibernate中如何处理一对多关系中的组合主键
来源:互联网 发布:apk反编译为源码 编辑:程序博客网 时间:2024/05/16 08:20
前段时间碰到这个问题,主要是hbm文件的的写法问题。我建了两个表,parent中的Pid与child中的Cid是一对多关系,Child中的cid与otherid只组合主键.如下
parent表
字段名
类型
长度
Pid (PK)
Character
10
Name
Character
10
Child表
字段名
类型
长度
cid (PK)
Character
10
Otherid (PK)
Smallint
Name
Character
10
hbm文件:
Parent.hbm.xml
<?xml version="1.0" encoding="GB2312"?><!DOCTYPE Hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "Hibernate.sourceforge.net/Hibernate-mapping-2.0.dtd"'">http://Hibernate.sourceforge.net/Hibernate-mapping-2.0.dtd">
<Hibernate-mapping><class name="Parent" table="parent"><id name="pid" column="pid" type="string" unsaved-value="any" > <generator class="assigned"/> </id><property name="name"/><set name="children" cascade="all-delete-orphan" inverse="true" lazy="true" > <key column="CID" /> <one-to-many class="Child"/> </set></class></Hibernate-mapping>
Child.hbm.xml
<?xml version="1.0" encoding="GB2312"?><!DOCTYPE Hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "Hibernate.sourceforge.net/Hibernate-mapping-2.0.dtd"'">http://Hibernate.sourceforge.net/Hibernate-mapping-2.0.dtd">
<Hibernate-mapping><class name="Child" table="child"><composite-id name="childpk" class="Childpk" unsaved-value="any"> <key-many-to-one name="parent" class="Parent" column="cid" /><key-property name="otherid" column="otherid" type="integer"/> </composite-id> <many-to-one name="parent" class="Parent" column="CID" cascade="save-update" not-null="true" update="false" insert="false" /><property name="name" column="name" type="string" /></class></Hibernate-mapping>
这两个hbm文件里面主要是:Parent中的<set name="children" cascade="all-delete-orphan" inverse="true" lazy="true" > <key column="CID" /> <one-to-many class="Child"/> </set> 和Child中的<many-to-one name="parent" class="Parent" column="CID" cascade="save-update" not-null="true" update="false" insert="false" />
这两个构成一对多关系中组合主键的双向关联。另外在写PO类的时候要注意hashcode和equals写的正确
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- Hibernate中如何处理一对多关系中的组合主键
- Hibernate中如何处理一对多关系中的组合主键
- hibernate基于主键的一对多关系
- hibernate中一对多关系
- hibernate中一对多等关系映射图和主键生成策略
- hibernate基于主键的一对多关系 补充
- Hibernate中的级联一对多关系
- hibernate中的一对多关联关系
- hibernate中的一对多(双向关系)
- hibernate之表关系中的一对多
- 【04】框架学习—Hibernate中处理一对多关系与多对多关系
- Hibernate中一对多的映射关系
- Hibernate 中一对多关系总结
- hibernate中一对多关系的映射
- hibernate中一对多关系的映射
- hibernate中一对多关系的映射
- hibernate中一对多关系的映射
- hibernate中一对多关系的映射
- SCJP认证考试复习笔记系列之二
- JSP标签自定义(2)---getProperty
- 结合验证在struts中减少Action和ActionForm的数量
- 【原创】ClassLoader是何物,有何用,怎么用?
- Hibernate中对无主键表的操作
- Hibernate中如何处理一对多关系中的组合主键
- Sun发布更精简开发工具Java Studio Creator
- Eclipse插件开发系列5.SWT中的布局管理器(4)
- 漫谈EJB
- xml中字符的转义
- 我的EJB学习历程(二)
- Eclipse 3.0 正式版发布
- spring的好处--PropertyPlaceholderConfigurer
- j2me与jsp通信技巧