有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

多个OneTONE自引用关系的java 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,我认为这对于我的预期目的是不正确的

有人能解释一下我将如何做这个模型吗?如果不可能实现既引用下一个任务又引用上一个任务的理想模式,我的备选方案是什么


共 (1) 个答案

  1. # 1 楼答案

    mappedBy表示在双向关系中“拥有”关系的属性。 因此,两边都有mappedBy是没有意义的。 请取下一个