117
技術社區[雲棲]
hibernate之映射關係多對多
前言:多對多就是一對多的分子,當多對多不能符合完整性約束是,就產生了一對多的關係,需要中間表來完成映射多對多關係注意配置:
1、多對多配置雙方都是set集合同時指向中間表的字段
代碼:
1、sql語句
create table t_user(
u_id varchar(255),
u_name varchar(255),
u_age Integer,
u_price double(5,2),
primary key(u_id)
);
create table t_user_class(
uc_id varchar(255),
uc_classNo Integer,
uc_funds double(5,2),
uc_back varchar(255),
primary key(uc_id)
);
create table t_user_reference(
u_id varchar(255),
uc_id varchar(255)
);
2、java類
public class UserClass {
private String id;
private Integer classNo;
private double funds;
private String back;
private Set<UserT> users=new HashSet<UserT>();
public class UserT implements Serializable{
private String id;
public String name;
private Integer age;
private double price;
private Set<UserClass> usercs=new HashSet<UserClass>();
3、配置文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"https://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wolf.pojo.oneToone">
<class name="UserClass" table="t_user_class">
<id name="id" column="uc_id"/>
<property name="classNo" column="uc_classNo"/>
<property name="funds" column="uc_funds"/>
<property name="back" column="uc_back"/>
<set name="users" table="t_user_reference" cascade="all">
<key column="u_id"></key>
<many-to-many column="uc_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"https://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wolf.pojo.oneToone" auto-import="false">
<class name="UserT" table="t_user">
<id name="id" column="u_id">
</id>
<property name="name" column="u_name"/>
<property name="age" column="u_age"/>
<property name="price" column="u_price"/>
<set name="usercs" table="t_user_reference" cascade="all">
<key column="uc_id"></key>
<many-to-many column="u_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
最後更新:2017-04-04 07:03:32