1、双向一对一外键关联
package org.lazyzhong.model;
public class User {
private int id;
private String name;
private Address address;
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;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public User() {
super();
}
}
package org.lazyzhong.model;
public class Address {
private int id;
private String address;
private User user;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Address() {
super();
}
}
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.lazyzhong.model"> <class name="User" table="user"> <id name="id" type="int"> <generator class="identity"/> </id> <property name="name" type="string" length="10" /> <many-to-one name="address" column="addressid" unique="true" /> </class> </hibernate-mapping>
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.lazyzhong.model"> <class name="Address" table="address"> <id name="id" type="int"> <generator class="identity"/> </id> <property name="address" type="string" length="20" /> <one-to-one name="user" class="User" /> </class> </hibernate-mapping>
2、双向一对多外键关联:
package org.lazyzhong.model;
import java.util.List;
public class User {
private int id;
private String name;
private List<Address> addresses;
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;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
public User() {
super();
}
}
package org.lazyzhong.model;
public class Address {
private int id;
private String address;
private User user;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Address() {
super();
}
}
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.lazyzhong.model">
<class name="User" table="user">
<id name="id" type="int">
<generator class="identity"/>
</id>
<property name="name" type="string" length="10" />
<bag name="addresses" cascade="all">
<!-- 指定外键名。。 -->
<key column="userid" />
<one-to-many class="Address" />
</bag>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.lazyzhong.model">
<class name="Address" table="address">
<id name="id" type="int">
<generator class="identity"/>
</id>
<property name="address" type="string" length="20" />
<many-to-one name="user" class="User" cascade="all">
<column name="userid" />
</many-to-one>
</class>
</hibernate-mapping>
3、双向一对多连接表关联:
实体类和上面的一致。。。
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.lazyzhong.model"> <class name="User" table="user"> <id name="id" type="int"> <generator class="identity"/> </id> <property name="name" type="string" length="10" /> <bag name="addresses" cascade="all" table="jointab"> <!-- 指定外键名。。 --> <key column="userid" /> <many-to-many unique="true" class="Address" column="addressid" /> </bag> </class> </hibernate-mapping>
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.lazyzhong.model"> <class name="Address" table="address"> <id name="id" type="int"> <generator class="identity"/> </id> <property name="address" type="string" length="20" /> <join table="jointab" inverse="true"> <key column="addressid" /> <many-to-one name="user" class="User" cascade="all" column="userid" /> </join> </class> </hibernate-mapping>
4、多对多双向关联
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.lazyzhong.model">
<class name="User" table="user">
<id name="id" type="int">
<generator class="identity"/>
</id>
<property name="name" type="string" length="10" />
<bag name="addresses" cascade="all" table="jt">
<key column="userid" />
<many-to-many class="Address" column="addressid" />
</bag>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.lazyzhong.model">
<class name="Address" table="address">
<id name="id" type="int">
<generator class="identity"/>
</id>
<property name="address" type="string" length="20" />
<bag name="users" cascade="all" table="jt">
<key column="addressid" />
<many-to-many class="Address" column="userid"/>
</bag>
</class>
</hibernate-mapping>