hibernate component的施用

hibernate component的使用

 第一次看到component这样使用。所以记下来。只记类与hbm文件,别的和hibernate别的一样

 

Address.java类如下:

 

package cn.ehoo.hibernate.domain;
/**
 *@author whp
 *@Email whp@ehoo.cn
 *@Nov 30, 2011
 *
 */
public class Address {
	private String province;
	private String city;
	private String street;
	private String zipcode;
	public String getProvince() {
		return province;
	}
	public void setProvince(String province) {
		this.province = province;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getStreet() {
		return street;
	}
	public void setStreet(String street) {
		this.street = street;
	}
	public String getZipcode() {
		return zipcode;
	}
	public void setZipcode(String zipcode) {
		this.zipcode = zipcode;
	}
	

}

 

Customer.java类如下:

 

package cn.ehoo.hibernate.domain;
/**
 *@author whp
 *@Email whp@ehoo.cn
 *@Nov 30, 2011
 *
 */
public class Customer {
	private Integer id;
	private String name;
	private Address homeAddress;
	private Address comAddress;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Address getHomeAddress() {
		return homeAddress;
	}
	public void setHomeAddress(Address homeAddress) {
		this.homeAddress = homeAddress;
	}
	public Address getComAddress() {
		return comAddress;
	}
	public void setComAddress(Address comAddress) {
		this.comAddress = comAddress;
	}
	
}

 

 

 

 

 

 

Customer.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 package="cn.ehoo.hibernate.domain">
	<class name="Customer" table="customer">
		<id name="id" type="int">
			<generator class="native" />
		</id>
		<property name="name" />
		<component name="homeAddress" class="cn.ehoo.hibernate.domain.Address">
			<property name="province" type="string" column="HOME_PROVINCE"/>
			<property name="city" type="string"  column="HOME_CITY"/>
			<property name="street" type="string" column="HOME_STREET"/>
		</component>
		<component name="comAddress" class="cn.ehoo.hibernate.domain.Address">
			<property name="province" type="string" column="COM_PROVINCE"/>
			<property name="city" type="string"  column="COM_CITY"/>
			<property name="street" type="string" column="COM_STREET"/>
		</component>

	</class>
</hibernate-mapping>