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

时间:2019-03-01 18:42:36

标签: jpa spring-data-jpa relational-database entity-relationship

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

我想到了这个

masterlist = [{"uid": "12345", "name": "John Smith", "val1": "25", "val2: "65"}, {etc...}]

但是,属性@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(我认为这是框架在内部执行的工作)?

1 个答案:

答案 0 :(得分:0)

尝试这种方式:

@OneToOne
@JoinColumn
private Book previousPart;

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