分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Hibernate 映射一对一关联关系

发布时间:2023-09-06 01:19责任编辑:赖小花关键词:Hibernate

基于外键的方式:

  附上代码:

  

public class Manager { ???private Integer mgrId; ???private String mgrName; ???private Department department; ???public Integer getMgrId() { ???????return mgrId; ???} ???public void setMgrId(Integer mgrId) { ???????this.mgrId = mgrId; ???} ???public String getMgrName() { ???????return mgrName; ???} ???public void setMgrName(String mgrName) { ???????this.mgrName = mgrName; ???} ???public Department getDepartment() { ???????return department; ???} ???public void setDepartment(Department department) { ???????this.department = department; ???}}
Manager 类
public class Department { ???private Integer deptId; ???private String deptName; ???private Manager manager; ???public Integer getDeptId() { ???????return deptId; ???} ???public void setDeptId(Integer deptId) { ???????this.deptId = deptId; ???} ???public String getDeptName() { ???????return deptName; ???} ???public void setDeptName(String deptName) { ???????this.deptName = deptName; ???} ???public Manager getManager() { ???????return manager; ???} ???public void setManager(Manager manager) { ???????this.manager = manager; ???}}
Department 类
<hibernate-mapping> ???<class name="hibernate.one2one.foreign.Department" table="DEPARTMENTS"> ???????<id name="deptId" type="java.lang.Integer"> ???????????<column name="DEPT_ID" /> ???????????<generator class="native" /> ???????</id> ???????<property name="deptName" type="java.lang.String"> ???????????<column name="DEPT_NAME" /> ???????</property> ???????<many-to-one name="manager" class="hibernate.one2one.foreign.Manager" unique="true" fetch="join"> ???????????<column name="MGR_ID"></column> ???????</many-to-one> ???</class></hibernate-mapping>
Department.hbm.xml
<hibernate-mapping> ???<class name="hibernate.one2one.foreign.Manager" table="MANAGER"> ???????<id name="mgrId" type="java.lang.Integer"> ???????????<column name="MGR_ID" /> ???????????<generator class="native" /> ???????</id> ???????<property name="mgrName" type="java.lang.String"> ???????????<column name="MGR_NAME" /> ???????</property> ???????<one-to-one name="department" ???????????class="hibernate.one2one.foreign.Department" ???????????fetch="select" ???????????property-ref="manager"> ???????????????</one-to-one> ???</class></hibernate-mapping>
Manager.hbm.xml

  其中 Department 使用 many-to-one 的方式映射 Manager,但是需要设置一个 unique 属性,设置为 true,使其只能指向一个 Manager

  Manager 使用 one-to-one 的方式来映射 Department,注意需要设置一个 property-ref 属性,因为其默认关联的是 Department 表中的主键,需要设置其指向 Department 哪个属性,注意,这里设置的值是域对象中的值,不是数据表中的列名。

Hibernate 映射一对一关联关系

原文地址:http://www.cnblogs.com/zyx1301691180/p/7701301.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved