对方案一的hibernate实现,利用hibernate中的父子关系来解决
来源:互联网 发布:js get post 区别 编辑:程序博客网 时间:2024/04/30 11:34
对方案一的hibernate实现,利用hibernate中的父子关系来解决:
java文件
hbm.xml文件
对于这个实现所以关系仍在party_relationship这张表中进行维护,通过PersonRelationship、DepartmentRelationship、PersonDepartment这三个子类进行维护。
java文件
- public class Party {
- Long partyId;
- String partyRole;
- }
- public class Person {
- Long id;
- Party party;
- String login;
- String name;
- String sex;
- ......
- }
- public class Department {
- Long id;
- Party party;
- String name;
- String address;
- ......
- }
- public abstract class PartyRelationship {
- Long id;
- Party partyFrom;
- Party partyTo;
- String partyRole;
- }
- public class PersonRelationship extends PartyRelationship{}
- public class DepartmentRelationship extends PartyRelationship{}
- public class PersonDepartment extends PartyRelationship{}
hbm.xml文件
- <hibernate-mapping package="com.bulain.model">
- <class name="Party" table="party">
- <id name="partyId" column="party_id" type="java.lang.Long" >
- <generator class="native"/>
- </id>
- <property name="partyRole" column="party_role" type="java.lang.String"/>
- </class>
- <class name="Person" table="person">
- <id name="id" column="id" unsaved-value="0">
- <generator class="foreign">
- <param name="property">party</param>
- </generator>
- </id>
- <one-to-one name="party" class="Party" cascade="all" constrained="true" />
- <property name="login" column="login" type="java.lang.String"/>
- <property name="name" column="name" type="java.lang.String"/>
- <property name="sex" column="sex" type="java.lang.String"/>
- </class>
- <class name="Department" table="department">
- <id name="id" column="id" unsaved-value="0">
- <generator class="foreign">
- <param name="property">party</param>
- </generator>
- </id>
- <one-to-one name="party" class="Party" cascade="all" constrained="true"/>
- <property name="name" column="name" type="java.lang.String"/>
- <property name="address" column="address" type="java.lang.String"/>
- </class>
- <class name="PartyRelationship" table="party_relationship" abstract="true">
- <id name="id" column="id" type="java.lang.Long">
- <generator class="native"/>
- </id>
- <discriminator column="party_role" type="java.lang.String"/>
- <many-to-one name="partyFrom" column="party_from_id" not-null="true"/>
- <many-to-one name="partyTo" column="party_to_id" not-null="true"/>
- <subclass name="PersonRelationship" discriminator-value="per_per">
- <property name="partyRole" column="party_role" insert="false"
- update="false"/>
- </subclass>
- <subclass name="PersonDepartment" discriminator-value="per_dept">
- <property name="partyRole" column="party_role" insert="false"
- update="false"/>
- </subclass>
- <subclass name="DepartmentRelationship" discriminator-value="dept_dept">
- <property name="partyRole" column="party_role" insert="false"
- update="false"/>
- </subclass>
- </class>
- </hibernate-mapping>
对于这个实现所以关系仍在party_relationship这张表中进行维护,通过PersonRelationship、DepartmentRelationship、PersonDepartment这三个子类进行维护。
- 对方案一的hibernate实现,利用hibernate中的父子关系来解决
- hibernate中的多对一关联关系
- hibernate中的多对一关联关系
- 【Hibernate】父子关系
- 【Hibernate】父子关系感想。
- Hibernate中父子关系对象的删除
- hibernate的父子关系及inverse
- hibernate的父子关系及inver
- Hibernate 父子关系的级联保存
- Hibernate中的多对一和多对多关系
- hibernate实现多对多的关系
- hibernate关联关系中的一对多以及多对一
- Hibernate中的多对一单向映射关系
- 兔八哥笔记15(1):Hibernate中的父子关系
- 兔八哥笔记15(1):Hibernate中的父子关系
- Hibernate的关系映射-------多对一与一对多的实现举例
- hibernate 自身表关联的多对一,一对多关系的实现
- 闲来无事,复习复习以前的东西---hibernate中的关联映射图解----多对一
- SQL Server 2005 - 实作CLR存储过程
- Hibernate中各种保存方法的区别(转载)
- OpenRowSet和OpenDataSource的运用技巧
- 实验用机多系统安装流程
- 系统托盘技巧
- 对方案一的hibernate实现,利用hibernate中的父子关系来解决
- 翻译的Hibernate的Session的javadoc
- JavaBean和EJB的区别
- FFMPEG:利用ffmpeg转换3gp文件
- XML序列化与反序列化
- 条款18: 让接口容易被正确使用,不易被误用
- 装饰者模式
- Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)
- Rollup & Cube