天天看點

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(

     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"

    <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>

     <!doctype hibernate-mapping public

             "-//hibernate/hibernate mapping dtd 3.0//en"

     <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>