无论是单向还是双向,在数据库里的形式都是一样的:用一个外键来建立两张表的联系。不同的是在程序中双向可以从任意一段得到另一端的引用。
Annotation方式:同样两端都使用@OneToOne,但需要注意在一端加上mapedBy参数。参数的值是另一端对应的属性名称。如果不加mapedBy,hibernate则会在数据库中生成两个外键关系。这是冗余的且在数据更新时会造成不必要的麻烦。一条规律是:凡是使用Annotation映射双向关系都要设置mapedBy。
xml方式:一端使用的是<many-to-one>加unique="true",另一端使用<one-to-one>property-ref。