@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 bk=new Book();
bk.setName("b1");
Chapter ch=new Chapter();
ch.setName("b1c1");
bk.getChapters().add(ch);
我得到這個錯誤 休眠:插入書(名稱)值 休眠(?):插入章(BOOKID,姓名)值 19(?,?):56:59094 ERROR JDBCExceptionReporter: 234 - 列「BOOKID」不能爲空
是。在這種情況下,大多數人會在Book上添加一個方便的方法(稱爲addChapter或其他一些方法),該方法將章節添加到集合並設置章節的書籍參考。 – codelark 2011-04-06 15:01:27