在users表中,用户经常使用的字段只有登录信息username和password,而其他用户信息如email,address,phone,mobile,postcode等信息使用率都不是很频繁,如果将这些记录放到一个表中,那么每次查询常用字段的时候,不常用的也都被查询出来了,降低了效率。从效率的角度考虑,我们想办法将常用的字段和不常用的字段分开在两个表中保存,他们之间使用一定的关联关系。其实这写内容是完全可以在一个表里的,但就是为了效率考虑,我们将他们分开了。那么如何在Hibernate中体现这两张表的关联关系呢?使用一对一映射。 这两张表的关系体现有两种方式: 第一种:共享主键的方式 第二种:唯一外键的方式 下面讲解共享主键的方式 第一步:创建数据库 第二步:生成映射文件和类,并修改映射文件和类 表users和profile其实表示的就是同一张表,为了性能考虑, 将其分开为两张表。而这两张表是有关联关系的,就是id。那么如何在Users.java类中体现Profile表呢,在其中添加一个Profile属性,那如何在Profile表中体现Users表呢,在其中添加一个Users属性。这样二者就相互关联上了 具体类设计如下: 映射文件设计如下: 这里的主键方式是共享主键:所以,profile.hbm.xml主键的增长方式和users.hbm.xml一样,如何实现呢?修改主键生成策略为外键foreign,同时定义根谁,也就是那个属性一样---users 第三步:编写测试类 |
|
来自: I_T_馆 > 《Hibernate》