OneToOne的mappedBy表现得很奇怪

时间:2018-03-18 19:30:54

标签: java jpa one-to-one

为什么双向cc test.c -L/path/to/libxml2/directory -lxml2 -lz -llzma -lm -ldl 关系在以下情况下表现得有点奇怪?:

  1. 我使用 相同的 反面实体创建2个所有者方实体
  2. 随着应用程序的另一次运行,我找到第二个所有者边实体(使用OneToOne),然后到达反面对象
  3. 此时如果我通过反面对象的引用到达所有者对象,我得到第一个所有者(附图帮助)
  4. enter image description here

    实体并不特别:

    • 员工包含:

      EntityManager

    • 而Person包含:

      @OneToOne(cascade = CascadeType.ALL) private Person person;

    这对我来说似乎很混乱,误导。这可能是一个错误,或者程序员必须了解他们的可能性吗?

1 个答案:

答案 0 :(得分:1)

为什么要为两个不同的员工重复使用相同的Person?这不再是OneToOne关系了。

顺便说一下,我怀疑在后面发生了什么,Hibernate执行以下查询:

 SELECT e FROM employee e WHERE person_id = ?

在这种情况下,结果集将包含两行,Hibernate将仅使用第一行,当然在这种情况下排序是未定义的(取决于您使用的数据库)。

您可以通过启用SQL日志记录来仔细检查。