我为一本书创建了一个实体/表,并且我想实现每个元素都可以引用另一本书来创建一个系列。
我想到了这个
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
(我认为这是框架在内部执行的工作)?
答案 0 :(得分:0)
尝试这种方式:
@OneToOne
@JoinColumn
private Book previousPart;
在您的代码中,您将book_id
字段定义为连接列,这是一个已经存在的列(id本身),因此实际上您将所有条目链接到它们自己。