hibernate one-to-one foreign key association

First, create an entity class

 

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 + "]";
	}

}

 

2. Create POJO mapping file

 

<?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>

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326603498&siteId=291194637