我正在尝试在Hibernate中将一对一关系映射为“零或一个”关系。我想我可能已经找到了使用多对一方法。
class A {
private B b;
// ... getters and setters
}
class B {
private A a;
}
A类的映射指定:
<many-to-one name="b" class="B"
insert="false" update="false"
column="id" unique="true"/>
B类的映射指定:
<one-to-one name="a" class="A" constrained="true"/>
我想在数据库中找不到B的匹配行时b为null。所以我可以做到这一点(在A类中):
if (b == null)
但是,看来b永远不会为空。
我该怎么办?
答案是在A中的多对一语句中添加not-found =“ ignore”:
<many-to-one name="b" class="B" not-found="ignore" insert="false" update="false" column="id" unique="true"/>
我尝试按照Rob H的建议,简单地向B添加lazy =“
false”,但是每次加载不带B的A时,都会导致HibernateObjectRetrievalFailureException。
请参阅本主题以获取更多信息:
https://forum.hibernate.org/viewtopic.php?p=2269784&sid=5e1cba6e2698ba4a548288bd2fd3ca4e
我正在使用与共享主键一对一映射。
1. 前言 本节课程和大家一起聊聊关联映射。通过本节课程的学习,你将了解到: 什么是关联映射; 如何实现一对一关联映射。 2. 关联映射 关系数据库中的数据以表为家,一张表一个家,一个家住一类数据。众多表组成关系型社区,关系型社区群体中的数据关系通过主外键方式描述。 表与表之间的数据根据彼此的关系可分为: 一对一关系: 如老公表和老婆表的关系; 一对多关系: 如用户表和银行账号表关系; 多对一关系
我有示例代码来检查双向关系是如何工作的。 我可以看到这种表h2表:- A:- B:- 对于B表,我期待一个列,正如我在代码中提到的。 所以我在我的控制器中,如果我试图检索B,如下所示:- 它就像一条链条,一条链条,一条链条。我正在学习hibernate和表的关系。显然我误解了什么。我的目的是双向的,当我加载A时,我可以访问相关的B。同样,当我加载B时,我可以访问相关的A。我如何实现这个目标?
问题内容: 如何在hibernate的hbm文件中创建可选的一对一映射?例如,假设我有一个User和一个last_visited_page表。用户可能有也可能没有last_visited页面。这是我当前在hbm文件中的一对一映射: 用户类别: LastVisitedPage类: 上面的示例不允许创建没有最后访问页面的用户。新创建的用户尚未访问任何页面。如何更改hbm映射以使userPrefs映
有两张数据表,其中A表的某个字段的值指向B表的主键。因为A表的任何一条记录只能对应B表的一条且唯一一条记录,所以称这种 映射为A表对B表数据的一对一映射。(当然,反过来,你也可是说,是B表对A表的一对多映射)。 上述结构,如果用 POJO 来表示的话,可以参看下图: 如上图, Pet 中就可以有一个字段 master,通过自身的 masterId 指向一个 Master 对象,那么我们说 Pet.
我试图在Hibernate中的两个表之间创建一对一的单向主键关系。我使用xml Maaping,下面是我的java POJO类和它们各自的。hbm文件。 储物柜POJO类 locker.hbm.xml 下面是我用来保存student和locker对象的主类。