How do I make many-to-many
relation between 2 classes Person
and Address
? Following is the POJO for Person
and Address
respectively.
Person :
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;
}
}
Address :
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;
}
}
The relation I am trying to define is A person can have many addresses and one address can belong to many people
. I am unable to represent this in the mapping xml
. This is what I have been able to do till now.
<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>
How do I define many to many
relation between these two classes ?
Add private List persons
instead of private Person person
in Address
class.
Configure your mapping.xml like this
//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>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.