汤阳光OA系统记录-----Hibernate实体映射

5 篇文章 0 订阅
5 篇文章 0 订阅

26集

Hibernate实体映射


格式:?属性,本类与?的?
?1 属性名
?2 关联对类型
?3 关系

多对一:
    <many-to-one name="" class="" column=""></many-to-one>
一对多(Set):
    <set name="">
        <key column=""></key>
        <one-to-many class=""/>
    </set>
多对多(Set):
    <set name="" table="">
        <key column=""></key>
        <many-to-many class="" column=""></many-to-many>
    </set>

关系图

实例:

public class Role {

    private Long id;
    private String name;
    private String description;
    private Set<User> users = new HashSet<User>();

    //Get Set方法.............
public class User {
    private Long id;
    private Department department;
    private Set<Role> roles = new HashSet<Role>();

    private String loginName; // 登录名
    private String password; // 密码
    private String name; // 真实姓名
    private String gender;// 性别
    private String phoneNumber;// 电话号码
    private String email;// 电子邮件
    private String description;// 说明

    //Get Set方法.............
public class Department {
    private Long id;
    private Set<User> users = new HashSet<User>();
    private Department parent;
    private Set<Department> children = new HashSet<Department>();

    private String name;
    private String description;

    //Get Set方法.............

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.itcast.oa.domain">

    <class name="Role" table="itcast_role">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name" />
        <property name="description" />

        <!-- users属性,本类与User的多对多 -->
        <set name="users" table="itcast_user_role">
            <key column="roleId"></key>
            <many-to-many class="User" column="UserId"></many-to-many>
        </set>
    </class>

</hibernate-mapping>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.itcast.oa.domain">

    <class name="User" table="itcast_user">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="loginName" />
        <property name="password" />
        <property name="name" />
        <property name="gender" />
        <property name="phoneNumber" />
        <property name="email" />
        <property name="description" />

        <!-- department 属性,本类与Department的多对一 -->
        <many-to-one name="department" class="Department" column="departmentId"></many-to-one>

        <!-- roles属性,本类与Role的多对多 -->
        <set name="roles" table="itcast_user_role">
            <key column="UserId"></key>
            <many-to-many class="Role" column="roleId"></many-to-many>
        </set>




    </class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.itcast.oa.domain">

    <class name="Department" table="itcast_department">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name" />
        <property name="description" />

        <!-- users属性,本类与User的一对多 -->
        <set name="users">
            <key column="departmentId"></key>
            <one-to-many class="User" />
        </set>

        <!-- parent属性,本类与Department(上级)的多对一 -->
        <many-to-one name="parent" class="Department" column="parentId"></many-to-one>

        <!-- children属性,本类与Department(下级)的一对多 -->
        <set name="children">
            <key column="parentId"></key>
            <one-to-many class="Department" />
        </set>

    </class>

</hibernate-mapping>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值