Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 休眠可选连接_Hibernate_One To One - Fatal编程技术网

Hibernate 休眠可选连接

Hibernate 休眠可选连接,hibernate,one-to-one,Hibernate,One To One,根据以下代码,我有一个一对一映射的实体: @Entity @Table(name = "my_entity") public class MyEntity { ... @OneToOne @JoinColumn(name = "site_id") private Site site; ... } 我刚刚被告知,我必须开始存储MyEntity条目,其值为'site_id',该值可能不存在于site表中。我仍然需要存储“site_id”的值,但是它与站点实体

根据以下代码,我有一个一对一映射的实体:

@Entity
@Table(name = "my_entity")
public class MyEntity
{
    ...
    @OneToOne
    @JoinColumn(name = "site_id")
    private Site site;
    ...
}
我刚刚被告知,我必须开始存储MyEntity条目,其值为'site_id',该值可能不存在于site表中。我仍然需要存储“site_id”的值,但是它与站点实体不匹配

我唯一能想到的是创建第二种类型的实体,映射到同一个表,而不是在site表上映射一对一/连接

有没有一种方法可以在不为同一个表创建第二个映射对象的情况下执行此操作


谢谢,保罗。

这是一个非常糟糕的设计。外键应为外键,且不应指向不存在的行。我会修正数据/设计

如果确实不能,请使用下面描述的NotFound注释:

默认情况下,当Hibernate由于预期的关联元素不在数据库中(关联列上的id错误)而无法解析关联时,Hibernate会引发异常。这可能会给遗留模式和维护不善的模式带来不便。您可以要求Hibernate忽略这些元素,而不是使用@NotFound注释引发异常。此批注可用于@OneToOne(带FK)、@ManyToOne、@OneToMany或@ManyToMany关联


我同意,但它已被授权:(谢谢)将尝试注释。