簡體   English   中英

無法在Person和Address類之間建立“多對多”關系

[英]Unable to make 'many-to-many' relation between Person and Address class

如何在2類“ Person和“ Address之間建立many-to-many關系? 以下分別是PersonAddressPOJO

人物:

public class Person {
    private int personID;
    private String name;
    private Person person;
    private List addressList;

    public List getAddressList() {
        return addressList;
    }

    public void setAddressList(List addressList) {
        this.addressList = addressList;
    }

    public int getPersonID() {
        return personID;
    }

    public void setPersonID(int personID) {
        this.personID = personID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

}

地址 :

public class Address {
    private int addressID;
    private String address;
    private Person person;

    public int getAddressID() {
        return addressID;
    }

    public void setAddressID(int addressID) {
        this.addressID = addressID;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

}

我想定義的關系是: A person can have many addresses and one address can belong to many people 我無法在mapping xml表示這一點。 到目前為止,這是我能夠做的。

    <hibernate-mapping>
      <class name="pojo.Person" table="person">
          <id name="personID" column="p_id">
              <generator class="increment" />
          </id>
          <property name="name" column="p_name" />
          <list name="addressList" table="address">
              <key column="a_id" />
              <!-- DEFINE MANY TO MANY --!>
          </list> 
      </class>

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

如何定義這兩個類之間的many to many關系?

Address類中添加private List persons而不是private Person person

像這樣配置您的mapping.xml

//For person.hbm.xml
<list name="addresses" inverse="false" table="person_address">
    <key>
        <column name="Person_ID" not-null="true" />
    </key>
    <many-to-many entity-name="domains.Address">
            <column name="listAddress_ID" not-null="true" />
    </many-to-many>
</list>
//For address.hbm.xml
<list name="persons" inverse="false" table="person_address">
        <key>
            <column name="listAddress_ID" not-null="true" />
        </key>
        <many-to-many entity-name="domains.Person">
            <column name="Person_ID" not-null="true" />
        </many-to-many>
</list>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM