14.1:1映射的双向导航

1.类图中,需要双向导航,意味着Husband可以找到Wife,Wife可以找到Husband。

2.数据库设计中,无论是查询那个表的信息,都只需要一个外键就可以通过sql搞定。

所以,映射的时候,在Wife类中必须是要增加Husband属性以及getter和setter。如果标记这个“组件”呢?

通过以上的分析,wife表中并不需要husband这个列,因为husband表已经包含了wifeID外键足以查询2个表的所有信息。不需要修改原来的表结构。

所以,可以将这样做:

Husband属性标记为“transient”,即不需要考虑这个字段的映射。

Husband属性标记为 “OneToOne(mappedBy=”wife”)”,即不会生成husband列。

    @Transient
    //@OneToOne(mappedBy="wife")
    public Husband getHusband() {
        return husband;
    }
posted @ 2013-10-09 21:50  FishBird  阅读(143)  评论(0编辑  收藏  举报