在 JPA 中对同一实体的一系列元素进行建模(一对一关系)

Modelling a series of elements of the same entity in JPA (one-to-one relation)

我为一本书创建了一个entity/table,我想实现每个元素都可以引用另一本书来创建一个系列。

我想到了这个:

@Entity
public class Book {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer bookId;

    @Lob
    private String text;

    @OneToOne
    @JoinColumn(name = "book_id")
    private Book previousPart;


}

但是,属性 previousPart 在我的数据库中没有被视为一个列,而其他的是。我是否必须使用不同的注释,或者这是对这样的关系建模的错误方法?或者我是否必须直接使用类型 Integer 而不是 Book (我认为这是框架内部所做的)?

试试这个方法:

@OneToOne
@JoinColumn
private Book previousPart;

在您的代码中,您将 book_id 字段定义为连接列,这是一个已经存在的列(id 本身),因此实际上您将所有条目链接到它们自己。