今天开始学关联关系,在关系数据库中,表和表之间通过键关联,而对象与对象之间有继承,拥有的关系,那么hibernate怎么把关系数据库的关系映射到对象之间的关系呢?今天开始学这个主题的第一种,one-to-one一对一的关联关系.一对一的关系很常见,比如:人和他的身份证, 员工和他的联系方式,hibernate中one-to-one的关联关系有两种做法,一种是以主键关联,就是有两个表他们的主键一致;另一种是以外键关联,就是两个表靠外键关联。为了演示这种关联关系,我用了三个表,对应三个相关联的对象:
Member(会员类), IDCard(身份卡类), Contact(联系方式类)。Member和IDCard, Contact都是one-to-one的关系,对应的数据库表中member和idcard公用主键,也就是说idcard的主键同时也是外键,和member的id有外键约束。contact的member_id和member的主键id有外键约束。
Member.hbm.xml:
IDCard.hbm.xml:
Contact.hbm.xml:
需要注意的是要把这3个映射文件加入到Hibernate.cfg.xml中。
MemberDao接口:
MemberHibernateDao:包括test case。