首先,我已阅读Hibernate - One table with multiple entities?。休眠 - 一个表多个实体
但是,我想映射两个实体到同一个表,但我希望他们都是实体,我可以从中选择。我的意思是:
- 一张桌子:人(id,名字,dateOfBirth,城市,街道,邮政编码)。
- 两个实体:人(身份证,姓名,出生日期),地址(身份证,城市, 街道,邮政编码)。
所以它是实体之间的1:1关系,但在数据库中仍然有1个表。
如果我在上面的链接中使用建议的解决方案(组件关键字),我不能直接查询地址(我可以通过Person实体访问它)。我希望能够做到
session.createCriteria(Adres.class)
我该怎么做?
更新: 我试过实体之间的一个一对一的关联,在地址映射:
<one-to-one name="Person " class="model_mapowanie_xml.Person "/>
,并在Person的映射:
<one-to-one name="Address" class="model_mapowanie_xml.Address "/>
两个类都有场指的是其他一。选择记录对此很好。但是,如何使用两个实体在一个事务中添加记录? (Id是由db生成的)
Address ad = new Address();
ad.setProperty("Sydney");
Person p = new Person();
p.setProperty("John");
p.setAddress(ad);
session.save(p);
并且只有Person部分被保存,地址属性保持为空。
使用标准的API查询的实体。 –