一对多映射关系中使用List集合的写法以及List下标由谁维护

例子:DeptEmp是一对多的关系

Emp:

public class Emp implements java.io.Serializable {

 

      private Integer id;

      private Dept dept;

      private String name;

      private int turn;

......

}

Dept

public class Dept implements java.io.Serializable {

 

      private Integer id;

      private String name;

      private List<Emp> emps = new ArrayList();

......

}

 

Emp.hbm.xml:

<many-to-one name="dept" class="Dept">

            <column name="dept_id" />

</many-to-one>

Dept.hbm.xml:

<list name="emps" cascade="all">

            <key column="dept_id"/>

            <list-index column="turn" base="0"/>

            <one-to-many class="Emp" />

</list>

 

Session s = HbnUtil.getSession();

Transaction transaction = s.getTransaction();

transaction.begin();

          

Emp emp = new Emp();

emp.setName("kobe");

Dept dept = new Dept();

dept.setName("Lakers");

          

emp.setDept(dept);

dept.getEmps().add(emp);

          

s.save(emp);

s.save(dept);

          

transaction.commit();

 

如果<list>中添加属性inverse=”true”,则turn由手工维护,

只有当inverse=”false”时,才是由hibernate自动维护turn。

也就是下标必须由一的一方来维护。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值