未设置 FK 休眠@onetomany



我有2个类

@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);

用户被保存,书籍被保存但在书表中,没有设置user_id。并保留为空。

为什么。

谢谢。

您没有显示代码,但连接表可能未填充,因为您忘记初始化书中的用户字段。 在双向关联中,所有者端是没有 mappedBy 属性的一方,JPA 使用这一端来知道关联是否存在。

最新更新