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