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>
它指的是哪一列?
我从这个映射中理解的是,person
和address
类之间有很多关系。
答案 0 :(得分:0)
元素是地址表中包含的列 父对象的外键即。表人和xyz的链接 在人员表中。
因此,您需要告诉子表中的哪个外键映射到父表中的哪个列作为主键。
答案 1 :(得分:0)
该列引用连接表上的外键。看看这个tutorial,它会给你完整的想法。顺便说一下,set上的table属性应该与tableA_tableB不同。
答案 2 :(得分: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>
并拥有mapper的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" />
表示人员表中的“id”列和
<many-to-many class="pojo.Address" column="a_id" />
列是地址表中的“id”列
答案 3 :(得分:-1)
列属性用于链接中间address
。已设置。