前言:多对多就是一对多的分子,当多对多不能符合完整性约束是,就产生了一对多的关系,需要中间表来完成映射多对多关系
注意配置:
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"
" http://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 class="UserT" 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"
" http://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 class="UserClass" column="u_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
注意配置:
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"
" http://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 class="UserT" 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"
" http://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 class="UserClass" column="u_id"></many-to-many>
</set>
</class>
</hibernate-mapping>