说明图
用户表结构(一方)
订单表结构(多方)
{{uploading-image-430713.png(uploading...)}}
用户表(一方)对应的JavaBean
package com.web.entity;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
public class User implements Serializable {
private String uid;
private String username;
private String password;
private String name;
private String email;
private Long telephone;
private String birthday;
private String sex;
private Integer state;
private Integer code;
//相对于订单表来说,用户表属于一方
//一个用户可以拥有多个订单
//所以用户这边配置为Set集合(一个用户装多个订单)
//注:这里的Set集合需要手动初始化
private Set<Orders> orderList = new HashSet<>();
public User() {
}
//...此处省略getter 和 setter
}
注: 这里的Set集合需要手动初始化,并且提供get set方法
订单表(多方)对应的JavaBean
package com.web.entity;
import java.io.Serializable;
import java.util.*;
//对于用户来说 订单属于一对多 中的 多方
public class Orders implements Serializable {
private String oid;
private Date ordertime;
private Double total;
private Integer state = 0;
private String address;
private String name;
private String telephone;
//相对于用户表来说,订单表属于多方
//多个订单可以被一个用户拥有
//所以订单这边配置为用户对象
//注:这里的对象不需要实例化
private User user;
//...此处省略getter 和 setter
}
注: 这里的对象不需要实例化,同样需要提供get set方法
用户对应的配置文件(一方)
<?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 name="com.web.entity.User" table="user">
<id name="uid" column="uid">
<generator class="uuid"></generator>
</id>
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="name" column="name"></property>
<property name="email" column="email"></property>
<property name="telephone" column="telephone"></property>
<property name="birthday" column="birthday"></property>
<property name="sex" column="sex"></property>
<property name="state" column="state"></property>
<property name="code" column="code"></property>
<!--
set标签:配置集合
name属性:表示javaBean中集合的名称
cascade属性:级联操作,具体查看《级联操作 放弃维护外键》
-->
<set name="orderList" cascade="save-update">
<!--
key标签:配置外键
column属性:外键的字段[由多方表(orders)提供]
-->
<key column="oid"></key>
<!--
one-to-many标签:配置多方javaBean文件位置,操作配置
class属性:外键表的全路径
-->
<one-to-many class="com.web.entity.Orders" ></one-to-many>
</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 name="com.web.entity.Orders" table="orders">
<id name="oid" column="oid">
<generator class="uuid"></generator>
</id>
<property name="ordertime" column="ordertime"></property>
<property name="total" column="total"></property>
<property name="state" column="state"></property>
<property name="address" column="address"></property>
<property name="name" column="name"></property>
<property name="telephone" column="telephone"></property>
<!--
many-to-one标签:配置一方的javaBean文件位置,操作配置
name属性: 当前javaBean中的属性
class属性:属性的全路径名
column属性:外键的字段
cascade属性:级联操作,具体查看《级联操作 放弃维护外键》
-->
<many-to-one name="user" class="com.web.entity.User" column="uid" cascade="save-update"></many-to-one>
</class>
</hibernate-mapping>
?