Hibernate多对多双向联系关系(多对多都很少用,双向都少用)
Hibernate多对多双向关联(多对多都很少用,双向都少用)
Order类
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类
import java.io.Serializable; import java.util.HashSet; import java.util.Set; /** * 具体的商品表(双向的多对多所以此类要关联Order) * @author Administrator * */ public class Product implements Serializable{ private int id; private String name; private Double price; private Set orders = new HashSet(); 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; } public Set getOrders() { return orders; } public void setOrders(Set orders) { this.orders = orders; } }
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"/> <set name="orders" table="ORDERITEM"> <key column="product_id" /> <many-to-many column="order_id" class="Order" /> </set> </class> </hibernate-mapping>
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="ORDERITEM"> <key column="order_id" /> <many-to-many class="com.lbx.model.Product" column="product_id"/> </set> </class> </hibernate-mapping>