mysql many to one_hibernate 多对一(Many-to-one)单向关联

这篇博客介绍了Hibernate中多对一(Many-to-one)单向关联的实现,通过Employee和Department实体类举例,详细讲解了E-R图、实体类定义、实体映射文件配置,以及如何在Java代码中操作这些对象。文中还讨论了懒加载机制,并给出了相关测试案例。
摘要由CSDN通过智能技术生成

多对一实例(Employee-Department)

1. E-R图:

2. 实体类:

Department类:

package com.reiyen.hibernate.domain

public class Department {

private int id;

private String name;

//setter和getter方法....

}

Employee类:

package com.reiyen.hibernate.domain

public class Employee {

private int id;

private String name;

private Department department;

//setter和getter方法

}

3. 实体映射文件:

Department.hbm.xml如下:

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

Employee.hbm.xml如下:

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

这种缺省情况,

hibernate会默认去department对象中查找主键值,因为hibernate默认的是外键对应另一个表中的主键的,

如果想对应department中的其它属性,如”name”,则可以使用也可以使用,这与 的唯一区别就是它的column名也为department了,而不是depart_id.

元素建立了department属性和employee表的外键depart_id之间的映射.

name: 设定待映射的持久化类的属性名,此外为employee类的department属性.

column: 设定和持久化类的属性对应的表的外键,此外为employee表的外键depart_id.

class(可选):设定持久化类的属性的类型,此处设定department的类型是Department类.

not-null(可选):如果为true,表示department属性不能为null,该属性的默认值为false.当为true时,生成的employee表中depart_id外键会设置not-null约束,所以当Hibernate保存Employee对象时,会先检查它的department属性是否为null,如果为null,则会抛出异常.

3. 将两个实体映射文件在hibernate.cfg.xml配置文件中注册:(hibernate.cfg.xml在我一篇文章:第一个Hibernate实例

中有)

4. 测试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值