首先,我已閱讀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查詢的實體。 –