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; }