Order类定义一个 Set products = new HashSet(); 用于建立Order和Product之间的关联(单向的)
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
public class Order implements Serializable{
private int id;
private String name;
private String phone;
private Set products = new HashSet();
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
public Set getProducts() {
return products;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setProducts(Set products) {
this.products = products;
}
}
Product类, 什麽都不关联
/**
* 具体的商品表(单向的多对多所以此类不关联Order)
* @author Administrator
*
*/
public class Product implements Serializable{
private int id;
private String name;
private Double price;
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 Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
}
Order.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="com.lbx.model"> <class name="Order" table="orders" lazy="true"> <id name="id" type="int" column="ID"> <generator class="increment"/> </id> <property name="name" type="java.lang.String" column="NAME"/> <property name="phone" type="java.lang.String" column="PHONE"/> <set name="products" table="ORDERRITEM"> <key column="order_id" /> <many-to-many class="com.lbx.model.Product" column="product_id"/> </set> </class> </hibernate-mapping>
Product.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="com.lbx.model"> <class name="Product" table="product" lazy="true"> <id name="id" type="int" column="ID"> <generator class="increment"/> </id> <property name="name" type="java.lang.String" column="NAME"/> <property name="price" type="java.lang.Double" column="PRICE"/> </class> </hibernate-mapping>