Java 多个一对一自指关系的JPA注释

Java 多个一对一自指关系的JPA注释,java,hibernate,jpa,spring-data-jpa,one-to-one,Java,Hibernate,Jpa,Spring Data Jpa,One To One,我试图为一个任务对象定义一个模型,该对象引用了前一个任务,又引用了下一个任务。这就是我在CompletableTask.java类中尝试对这些关系建模的方式: 但是,当我启动应用程序并让Hibernate为此创建必要的架构更新时,我会收到以下错误日志: org.hibernate.AnnotationException: Unknown mappedBy in: com.my_package.CompletableTask.nextTask, referenced property unknow

我试图为一个任务对象定义一个模型,该对象引用了前一个任务,又引用了下一个任务。这就是我在CompletableTask.java类中尝试对这些关系建模的方式:

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

org.hibernate.AnnotationException: Unknown mappedBy in: com.my_package.CompletableTask.nextTask, referenced property unknown: com.my_package.CompletableTask.previousTask
我已经能够通过从nextTask的一对一注释中删除mappedBy=previousTask参数来解决这个问题,但是Hibernate生成的表中没有以前的任务id,我认为这对于我的预期目的是不正确的

有人能解释一下我将如何做这个模型吗?如果不可能实现同时引用下一个和上一个任务的所需模式,那么我的备选方案是什么?

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

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

我建议一个任务只存储一个关系,例如下一个任务。如果两个关系都存储在每个任务中,则两行必须保持相同的关系一个任务保持下一个任务关系,另一个保持上一个任务关系,两者都引用另一个任务。如果关系存储在多个实体中,我不确定hibernate是否能够处理数据一致性。我建议一个任务只存储一个关系,例如nextTask。如果两个关系都存储在每个任务中,则两行必须保持相同的关系一个任务保持下一个任务关系,另一个保持上一个任务关系,两者都引用另一个任务。如果关系存储在多个实体中,我不确定hibernate是否能够处理数据一致性。是的,你是对的。这就是为什么不允许这样做的结构性原因,但@Turing85指出,除此之外,我的设计也存在缺陷。对于这个应用程序,我基本上是对一个双链接列表进行建模,该列表包含冗余数据,这些数据不需要保存以了解完整状态。非常感谢。是的,你说得对。这就是为什么不允许这样做的结构性原因,但@Turing85指出,除此之外,我的设计也存在缺陷。对于这个应用程序,我基本上是对一个双链接列表进行建模,该列表包含冗余数据,这些数据不需要保存以了解完整状态。非常感谢。
org.hibernate.AnnotationException: Unknown mappedBy in: com.my_package.CompletableTask.nextTask, referenced property unknown: com.my_package.CompletableTask.previousTask