一对一关系的维护有两种,分为主键关联和唯一外键关联一对一关系的维护有两种,分为主键关联和唯一外键关联主键关联:(双向)(主控方) Person.javaPerson { 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.javaAddress{ 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-onename="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>
Hibernate的一对一关系
80酷酷网 80kuku.com