一对一关系的维护有两种,分为主键关联和***外键关联,下面的代码展示Hibernate一对一关系中的主键双向关联。
主键关联:(双向)
(主控方) 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 文件
name="address" class="Address" cascade="all" constrained="false" />
person
|
【编辑推荐】
- Hibernate的两种配置文件格式
- 解析Hibernate中的事务管理
- 解析Hibernate的批量删除功能
- Hibernate、Spring和Struts工作原理及使用理由