0
我有2個班休眠@OneToMany FK未設置
@Entity
@Table(name = "user")
public class User
@Id
@Column(name = "id")
@GeneratedValue
private int id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@Cascade({CascadeType.ALL})
private Collection<Book> userBooks;
}
@Entity
@Table(name = "books")
public class Book
@Id
@Column(name = "id")
@GeneratedValue
private int id;
@ManyToOne
private User user;
}
這裏更多的代碼:
User user = new User(); user.setUserName("Gleeb"); user.setUserPassword("gleeb");
Book book = new Book();
book.setTitle("some book ");
book.setbookType(1);
user.addUserbook(book);
userService.save(user);
我試圖創建一個新用戶,並添加一本新書。 當我保存用戶
session.saveOrUpdate(用戶);
用戶保存,這本書被保存 而書中表,user_ID的未設置。並留空。
這是爲什麼。
謝謝。
我已添加更多代碼。 如果我嘗試初始化書籍類中的用戶記憶,我得到異常: 對象引用未保存的瞬態實例 - 在沖洗前保存瞬態實例 – Gleeb
好吧,我不瞭解你的速記,但最終你是對的。我不得不把我創建的新用戶放入書實例中。這是它知道用戶ID的唯一方式。 – Gleeb