如:订单表与订单项表
订单表对应的实体类
(与订单项表为一对多的关系)
private Integer orderId;
private String orderNo;
/*
* 在描述关系的时候,一定是集合接口进行接受
* 对应的订单详情一对多关系
* 不一定要用set list也可以
*/
private Set<OrderItems> orderItems = new HashSet<OrderItems>();
//解决懒加载的问题
private Integer initOrderItems = 0;//0懒加载 1立即加载
public Integer getInitOrderItems() {
return initOrderItems;
}
public void setInitOrderItems(Integer initOrderItems) {
this.initOrderItems = initOrderItems;
}
public Set<OrderItems> getOrderItems() {
return orderItems;
}
public void setOrderItems(Set<OrderItems> orderItems) {
this.orderItems = orderItems;
}
public Integer getOrderId() {
return orderId;
}
public void setOrderId(Integer orderId) {
this.orderId = orderId;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
订单项表对应的实体类
(与订单表为多对一的关系)
private Integer orderItemId;//订单项id
private Integer productId;//商品id
private Integer quantity ;//数量
private Integer oid;//订单id
// 对应的订单
private Order order;
public Integer getOrderItemId() {
return orderItemId;
}
public void setOrderItemId(Integer orderItemId) {
this.orderItemId = orderItemId;
}
public Integer getProductId() {
return productId;
}
public void setProductId(Integer productId) {
this.productId = productId;
}
public Integer getQuantity() {
return quantity;
}
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
public Integer getOid() {
return oid;
}
public void setOid(Integer oid) {
this.oid = oid;
}
public Order getOrder() {
return order;
}
public void setOrder(Order order) {
this.order = order;
}
订单表的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--
table:实体类对应的表名
name :实体类的全类名
-->
<class table="t_hibernate_order" name="com.liu.four.entity.Order">
<!--
name : 实体类的变量名
column : 数据库的列段名
type : 变量的数据类型
-->
<id name="orderId" column="order_id" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="orderNo" column="order_no" type="java.lang.String"/>
<!--
name : 在order中的orderItems的orderitem的变量名
cascade : 配置的是级联关系
inverse : 反方,将级联关系交给对方控制吗?
lazy : 是否懒加载 lazy="false" 懒加载浪费资源
-->
<set name="orderItems" cascade="save-update" inverse="true">
<!-- 配置外键字段 -->
<key column="oid"></key>
<!-- 外键表对应的实体类 -->
<one-to-many class="com.liu.four.entity.OrderItems"/>
</set>
</class>
</hibernate-mapping>
订单项表对应的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class table="t_hibernate_order_item" name="com.liu.four.entity.OrderItems">
<id name="orderItemId" column="order_item_id" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="productId" column="product_id" type="java.lang.Integer"/>
<property name="quantity" column="quantity" type="java.lang.Integer"/>
<property name="oid" column="oid" type="java.lang.Integer" insert="false" update="false"/>
<!-- -->
<many-to-one name="order" class="com.liu.four.entity.Order" column="oid"></many-to-one>
</class>
</hibernate-mapping>
配置好之后要记得在主配置文件中配置
<!-- 关系一对多 -->
<mapping resource="com/liu/four/entity/Order.hbm.xml"/>
<mapping resource="com/liu/four/entity/OrderItems.hbm.xml"/>