@Entity
@Table
public class Book {
@Id @GeneratedValue @Column private Long bookId;
@Column private String name;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinColumn(name="bookId")
private List<Chapter> chapters=new ArrayList<Chapter>();
.....
@Entity
@Table
public class Chapter {
@Id @Column @GeneratedValue
private Long cid;
@Column private String name;
@Column private Long bookId;
....
ฉันควรใช้คำอธิบายประกอบแบบใดใน Chapter.bookId เพื่ออ้างอิงถึง Book.bookId ดังนั้น Chapter.bookid จะใช้ค่าที่สร้างขึ้นของ Book.bookId ในขณะที่แทรก Book ใหม่
Book bk=new Book();
bk.setName("b1");
Chapter ch=new Chapter();
ch.setName("b1c1");
bk.getChapters().add(ch);
ฉันได้รับข้อผิดพลาดนี้ ไฮเบอร์เนต: แทรกลงในค่าหนังสือ (ชื่อ) (?) ไฮเบอร์เนต: แทรกลงในค่าบท (bookId, ชื่อ) (?, ?) 19:56:59,094 ข้อผิดพลาด JDBCExceptionReporter:234 - คอลัมน์ 'bookId' ไม่สามารถเป็นค่าว่างได้