0

标签column内的属性是什么意思?many to many

<class name="pojo.Person" table="person">
      <id column="p_id" name="personID">
          <generator class="increment" />
      </id>
      <property name="personName" column="p_name" />
      <set name="addressSet" table="address">
          <key column="a_id" />
          <many-to-many class="pojo.Address" column="xyz" />
      </set>
</class>

<class name="pojo.Address" table="address">
      <id column="a_id" name="addressID">
          <generator class="foreign" />
      </id>
      <property name="address" column="a_id" />
</class>

它指的是哪一列?

我从这个映射中了解到,这personaddress类之间有多对多的关系。

4

4 回答 4

0

元素是地址表中保存父对象外键的列,即。表 person 和指向 person 表中 xyz 的链接。

因此,您需要告诉子表中的哪个外键映射到父表中的哪个列作为主键。

于 2013-06-25T06:31:19.693 回答
0

该列引用连接表上的外键。看看这个教程,它会给你完整的想法。顺便说一下,set 上的 table 属性应该与 tableA_tableB 不同。

于 2013-06-25T06:32:35.210 回答
0

例如,这两个表之间应该有一个中间表

<class name="pojo.Person" table="person">
      <id column="p_id" name="personID">
          <generator class="increment" />
      </id>
      <property name="personName" column="p_name" />
      <set name="addressSet" table="map">
          <key column="p_id" />
          <many-to-many class="pojo.Address" column="a_id" />
      </set>
</class>

<class name="pojo.map" table="map">          
    <composite-id>
        <key-property name="person_ID" column="p_id"/>
        <key-property name="address_ID" column="a_id"/>
    </composite-id>
    <property name="person_ID" type="java.lang.Long" insert="false" update="false">
        <column name="p_id"/>
    </property>
    <property name="address_ID" type="java.lang.Long" insert="false" update="false">
        <column name="a_id"/>
    </property>

</class>

<class name="pojo.Address" table="address">
      <id column="a_id" name="addressID">
          <generator class="assigned"/>
      </id>
      <property name="address" column="address" />
</class>

并有一个用于映射器的 bean 类

public class map{

    private long person_ID;

    private long address_ID;

    public long getPerson_ID() {
        return person_ID;
    }


    public void setPerson_ID(long person_ID) {
        this.person_ID= person_ID;
    }


    public long getAddress_ID() {
        return address_ID;
    }


    public void setAddress_ID(long address_ID) {
        this.address_ID= address_ID;
    }
}

在这里

<set name="addressSet" table="map">
     <key column="p_id" />
     <many-to-many class="pojo.Address" column="a_id" />
</set>

关键列

<key column="p_id" />

表示 person 表中的“id”列和

<many-to-many class="pojo.Address" column="a_id" />

此列是地址表中的“id”列

于 2013-06-25T12:44:50.963 回答
-1

列属性用于链接中间address。即设置。

于 2013-06-25T06:34:22.383 回答