Java 如何创建一个单向关系,其中关系由子实体拥有,但父实体是定义关系的地方

Java 如何创建一个单向关系,其中关系由子实体拥有,但父实体是定义关系的地方,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我正在努力在JPA中创建以下关系。这是一种单向关系,父对象知道子对象,但子对象不知道父对象,但我希望子表将FK设置为父对象。我尝试了mapped by和join列的不同版本,但很明显,我提出的任何组合似乎都不起作用。我的谷歌搜索也没有帮我找到答案。这是我现在拥有的 @Entity class Parent { @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy

我正在努力在JPA中创建以下关系。这是一种单向关系,父对象知道子对象,但子对象不知道父对象,但我希望子表将FK设置为父对象。我尝试了mapped by和join列的不同版本,但很明显,我提出的任何组合似乎都不起作用。我的谷歌搜索也没有帮我找到答案。这是我现在拥有的

@Entity
class Parent
{
  @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "child")
  private Child child
}

@Entity
class Child
{
  private bool someField
}
有没有一种方法可以做到这一点,我只是错过了?

如果

@OneToOne(..)
@JoinColumn(name = "parent_id")
private Child child;
不起作用,请尝试以下操作:

@OneToOne(..)
@JoinColumn(table = "child", name = "parent_id")
private Child child;

您的批注似乎不正确。。。mappedBy是应该在子对象的反向关系中使用的字段。关系的拥有方还应该定义@JoinColumn。我尝试了这两种方法,但两种方法都不起作用,第一种方法仍然将联接列放在父表中,第二种方法报告它找不到表,我尝试了不同的命名方案类名、成员名和实际表名。我正在使用DDL生成来为此创建架构。对于2,请尝试将@Tablechild添加到子类中。实际上,我已经有了@Tablesome\u child\u table\u name,我尝试在@JoinColumn中使用相同的东西,但也没有成功。我现在有一个双向的关系,所以绕开这个问题,而不是世界末日,只会让它更难处理,它并不代表我的领域模型应该是什么。