Hibernate 单向一对多联系关系(不使用中间表)
Hibernate 单向一对多关联(不使用中间表)
一个人(People)有多个地址(Address),例如出生地,工作地。
People.java
/** * */ package com.hb.po; import java.util.HashSet; import java.util.Set; /** * @author dudong0726 * * @date 2011-11-9 上午10:51:17 * */ public class People { private long id; private String name; private Set<Address> addresses = new HashSet<Address>(); public Set<Address> getAddresses() { return addresses; } public void setAddresses(Set<Address> addresses) { this.addresses = addresses; } public String getName() { return name; } public void setName(String name) { this.name = name; } public long getId() { return id; } public void setId(long id) { this.id = id; } }
Address.java
/** * */ package com.hb.po; /** * @author dudong0726 * * @date 2011-11-9 上午10:51:48 * */ public class Address { private long id; private String addressDesc; public String getAddressDesc() { return addressDesc; } public void setAddressDesc(String addressDesc) { this.addressDesc = addressDesc; } public long getId() { return id; } public void setId(long id) { this.id = id; } }
one2many_without.hbm.xml
<?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> <class name="com.hb.po.People" table="PeopleOne2ManyWithout"> <id name="id" column="p_id"> <generator class="native"></generator> </id> <property name="name"></property> <set name="addresses"> <key column="p_id"></key> <one-to-many class="com.hb.po.Address"/> </set> </class> <class name="com.hb.po.Address" table="AddressOne2ManyWithout"> <id name="id" column="a_id"> <generator class="native"></generator> </id> <property name="addressDesc"></property> </class> </hibernate-mapping>