Java 使用jpa持久化(或查找)对象不会保存它封装的对象列表
假设我们在关系数据库中有一个表“Book”,该表由一个表“Page”引用。一本书包含一页或多页,一页属于一本书 在JPA中,该关系在实体类中定义如下Java 使用jpa持久化(或查找)对象不会保存它封装的对象列表,java,jpa,Java,Jpa,假设我们在关系数据库中有一个表“Book”,该表由一个表“Page”引用。一本书包含一页或多页,一页属于一本书 在JPA中,该关系在实体类中定义如下 class Book: @OneToMany(mappedBy = "book") private List<Page> pageList; class Page: @JoinColumn(name = "book", referencedColumnName = "id") @ManyToOne private Book book;
class Book:
@OneToMany(mappedBy = "book")
private List<Page> pageList;
class Page:
@JoinColumn(name = "book", referencedColumnName = "id")
@ManyToOne
private Book book;
您需要添加
@OneToMany(mappedBy=“book”,cascade=CascadeType.PERSIST)
。
对于JPA的
OneToMany
,默认情况下不支持任何操作。您需要添加@OneToMany(mappedBy=“book”,cascade=CascadeType.PERSIST)
。
对于JPA的
OneToMany
,默认情况下不允许任何操作。请显示您的课程正文和页面。它应该按预期工作,因此您的实体可能存在其他错误。请显示您的类正文和页面。它应该按预期工作,因此您的实体可能存在其他一些错误。
public void add(Book book) throws TestException
{
try {
em = getEmf().createEntityManager();
EntityTransaction tr = em.getTransaction();
tr.begin();
em.persist(book);
tr.commit();
em.close();
} catch (PersistenceException pex) {
throw new TestException(
"This book already exists.", pex);
}
}