| |
一对一关系的维护有两种,分为主键关联和唯一外键关联
一对一关系的维护有两种,分为主键关联和唯一外键关联
主键关联:(双向) (主控方)
person.java person {
private string username; //对被控方的引用 private address address;
public string getusername() { return username; }
public void setusername(string username) { this.username = username; }
public address getaddress() { return address; }
public void setaddress(address address) { this.address= address; }
}
(被动方) address.java address{
private string addressname; //对主控方的引用 private person person;
public string getaddressname() { return addressname; }
public void setaddressname(string addressname) { this.addressname= addressname; }
public person getperson() { return person; }
public void setperson(person person) { this.person= person; }
public string tostring() { return new tostringbuilder(this). append("addressname", addressname). tostring(); }
public boolean equals(object o) { if ( !(o instanceof address) { return false; } address rhs = (address) o; return new equalsbuilder() .appendsuper(super.equals(o)) .append(this.addressname, rhs.getaddressname()) .isequals(); }
public int hashcode() { return new hashcodebuilder(17, 37). append(addressname). tohashcode(); }
} mapping 文件
<class name="person" table="person"> <id name="id" type="long" column="id"> <generator class="native"/> </id> <property name="username" column="username" type="string"/> <one-to-one name="address" class="address" cascade="all" constrained="false" /> </class>
<class name="address" table="address" > <id name="id" column="id"> <generator class="foreign"> <param name="property">person</param> </generator> </id> <one-to-one name="person" class="person" constrained="true"/> <property name="addressname" column="addressname" type="string"/> </class>
|
|