一对一单双向主键联系关系-xml
一对一单双向主键关联-xml
用户表和用户信息表:
规定:用户信息表中的id主键由用户表生成。
单向映射:
package com.zchen.hibernate.oneTone; public class Person { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package com.zchen.hibernate.oneTone; public class Info { private int id; private int age; private String address; private Person person; public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
<?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.zchen.hibernate.oneTone"> <class name="Person" table="T_Person"> <id name="id" column="ID"> <generator class="native"/> </id> <property name="name" column="NAME"/> </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.zchen.hibernate.oneTone"> <class name="Info" table="T_INFO"> <id name="id" column="ID"> <generator class="foreign"> <param name="property">person</param> </generator> </id> <property name="age" column="AGE"/> <property name="address" column="ADDRESS"/> <one-to-one name="person" constrained="true"></one-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.zchen.hibernate.oneTone"> <class name="Person" table="T_Person"> <id name="id" column="ID"> <generator class="native"/> </id> <property name="name" column="NAME"/> <one-to-one name="info" property-ref="person"></one-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.zchen.hibernate.oneTone"> <class name="Info" table="T_INFO"> <id name="id" column="ID"> <generator class="foreign"> <param name="property">person</param> </generator> </id> <property name="age" column="AGE"/> <property name="address" column="ADDRESS"/> <one-to-one name="person" constrained="true"></one-to-one> </class> </hibernate-mapping>