欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

hibernate一对一外键关联

程序员文章站 2022-03-06 22:25:41
...

一、创建实体类

 

package com.wr.hibernate.entity;

public class Department {

	private int deptId;
	private String deptName;
	private Manager mgr;

	public int getDeptId() {
		return deptId;
	}

	public Manager getMgr() {
		return mgr;
	}

	public void setMgr(Manager mgr) {
		this.mgr = mgr;
	}

	public void setDeptId(int deptId) {
		this.deptId = deptId;
	}

	public String getDeptName() {
		return deptName;
	}

	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}

	@Override
	public String toString() {
		return "Department [deptId=" + deptId + ", deptName=" + deptName + "]";
	}

}

 

package com.wr.hibernate.entity;

public class Manager {

	private int mgrId;
	private String mgrName;
	private Department dept;

	public int getMgrId() {
		return mgrId;
	}

	public void setMgrId(int mgrId) {
		this.mgrId = mgrId;
	}

	public String getMgrName() {
		return mgrName;
	}

	public void setMgrName(String mgrName) {
		this.mgrName = mgrName;
	}

	public Department getDept() {
		return dept;
	}

	public void setDept(Department dept) {
		this.dept = dept;
	}

	@Override
	public String toString() {
		return "Manager [mgrId=" + mgrId + ", mgrName=" + mgrName + ", dept=" + dept + "]";
	}

}

 

二、创建POJO映射文件

 

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

<hibernate-mapping package="com.wr.hibernate.entity">

	<class name="Department" table="department" dynamic-insert="true">

		<id name="deptId" type="java.lang.Integer">
			<column name="dept_id" />
			<generator class="native"></generator>
		</id>

		<property name="deptName" type="java.lang.String">
			<column name="dept_name" />
		</property>
		
		<many-to-one name="mgr" class="Manager">
			<column name="mgr_id" unique="true"></column>
		</many-to-one>
		
		
	</class>

</hibernate-mapping>

 

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

<hibernate-mapping package="com.wr.hibernate.entity">

	<class name="Manager" table="manager" dynamic-insert="true">

		<id name="mgrId" type="java.lang.Integer">
			<column name="mgr_id" />
			<generator class="native"></generator>
		</id>

		<property name="mgrName" type="java.lang.String">
			<column name="mgr_name" />
		</property>
		
		<one-to-one name="dept" class="Department" property-ref="mgr">
		</one-to-one>

	</class>

</hibernate-mapping>