休眠中的可选一对一映射

2022-09-02 23:40:22

如何在休眠 hbm 文件中创建可选的一对一映射?例如,假设我有一个 User 和一个 last_visited_page 表。用户可能有也可能没有last_visited页面。以下是我目前在hbm文件中的一对一映射:

用户类:

<one-to-one name="lastVisitedPage" class="LastVisitedPage" cascade="save-update">

上次访问页面类:

<one-to-one name="user" class="user" constrained="true" />

上面的示例不允许创建没有上次访问过的页面的用户。新创建的用户尚未访问任何页面。如何更改 hbm 映射以使 userPrefs 映射可选?


答案 1

据我所知,Hibernate不支持可选的一对一(参见HHH-2007),所以你必须使用假货。many-to-onenot-null="false"


答案 2

只是今天花了大半天的时间尝试做类似的事情,终于找到了以下解决方案(以防万一这对其他人有用)

@OneToOne
@JoinColumn(name="ClassA_Id", referencedColumnName="ClassB_Id", nullable=true)

希望这可能有助于节省某人一些时间


推荐