hibernate one-to-many与many-to-one的使用

 

和one to one 一样,首先写了两个实体类Department(private int deptid;private String dname;private String location; 
private Set<Employee> employees;)和Employee(private int empid;private String ename;private Department dept;)生成get,set方法, 
然后同样配置实体类的映射文件Department.hbm.xml和Employee.hbm.xml。 
代码: 

----------Department.hbm.xml 

<?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> 
<class name="cn.hdu.entity.Department" table="DEPARTMENT"> 
<id name="deptid" column="DEPTID"> 
<generator class="sequence"><param name="sequence">dept_sequence</param></generator> 
</id> 
<property name="dname" column="DNAME"></property> 
<property name="location" column="LOCATION"></property> 
<set name="employees" cascade="save-update" lazy="false"> 
<key column="DEPTID"></key> 
<one-to-many class="cn.hdu.entity.Employee"/> 
</set> 
</class> 
</hibernate-mapping> 

-----------Employee.hbm.xml 
<?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> 
<class name="cn.hdu.entity.Employee" table="EMPLOYEE"> 
<id name="empid" column="EMPID"> 
	<generator class="sequence"><param name="sequence">emp_sequence</param></generator> 
</id> 
<property name="ename" column="ENAME"></property> 
<many-to-one name="dept" column="DEPTID" class="cn.hdu.entity.Department" lazy="false"></many-to-one> 
</class> 
</hibernate-mapping> 

注意:属性的解释大多同于 one to one例子(详见Hibernate one to one配置),这里面说下为什么要用set:set代表把整个employees对象装入其中, 
之后many to one对应于Department dept.deptid,或者说对应于表Department中DEPTID字段,而one to many代表表Department中DEPTID字段对应于相应的表emplooy一条或者多条记录 
做完映射之后同样不要忘记把映射文件写入hibernate.cfg.xml
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值