用于多个一对一自参照关系的 JPA 注释



我正在尝试为具有对上一个任务的引用以及对下一个任务的引用的任务对象定义模型。这就是我尝试在CompletableTask.java课上对这些关系进行建模的方式:

@OneToOne(mappedBy = "previousTask", orphanRemoval = true)
@JoinColumn(name = "next_task_id")
private CompletableTask nextTask;
@OneToOne(mappedBy = "nextTask", orphanRemoval = true)
@JoinColumn(name = "previous_task_id")
private CompletableTask previousTask;

但是,当我启动我的应用程序并让 Hibernate 为此创建必要的架构更新时,我收到以下错误日志:

org.hibernate.AnnotationException: Unknown mappedBy in: com.my_package.CompletableTask.nextTask, referenced property unknown: com.my_package.CompletableTask.previousTask

我已经能够通过简单地从nextTask的一对一注释中删除mappedBy = "previousTask"参数来解决此问题,但是Hibernate生成的表中没有previous_task_id,我认为这对于我的预期目的来说是不正确的。

有人可以解释一下我将如何对此进行建模吗?如果无法实现同时引用下一个和上一个任务的所需架构,我的替代方案是什么?

mappedBy表示在双向关系中"拥有"关系的属性。 因此,双方都有mappedBy是没有意义的。 请删除一个。

最新更新