[转帖]Hibernate的一对一关系(转)_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3799 | 回复: 0   主题: [转帖]Hibernate的一对一关系(转)        下一篇 
yd7563337
注册用户
等级:少将
经验:10191
发帖:128
精华:1
注册:2011-8-9
状态:离线
发送短消息息给yd7563337 加好友    发送短消息息给yd7563337 发消息
发表于: IP:您无权察看 2011-8-15 11:07:05 | [全部帖] [楼主帖] 楼主

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

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

主键关联:(双向)

(主控方)
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"/>




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论