Hibernate的一对一关系

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

一对一关系的维护有两种,分为主键关联和唯一外键关联

一对一关系的维护有两种,分为主键关联和唯一外键关联

主键关联:(双向)

(主控方)

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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航