Java 如何在JPA2.0中为OneToMany单向使用延迟加载?
是否可以在Java 如何在JPA2.0中为OneToMany单向使用延迟加载?,java,jpa,jpql,Java,Jpa,Jpql,是否可以在OneToMany单向映射中使用LAZY住宿? 在我的示例中,BookShelf有一个Book列表,作为LAZY加载 我需要再次通过BookShelf's ID检索bookList。 我想知道可能的方法从一个或多个单向映射中选择多个 Book.java @Entity public class Book implements Serializable { @Id private String id; .... } BookShelf.java @Entity
OneToMany
单向映射中使用LAZY
住宿?
在我的示例中,BookShelf
有一个Book
列表,作为LAZY
加载
我需要再次通过BookShelf's ID
检索bookList
。
我想知道可能的方法从一个或多个单向映射中选择多个
Book.java
@Entity
public class Book implements Serializable {
@Id
private String id;
....
}
BookShelf.java
@Entity
public class BookShelf implements Serializable {
@Id
private String id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "BOOK_SHELF_ID", referencedColumnName = "ID")
private List<Book> bookList;
}
@实体
公共类书架实现了可序列化{
@身份证
私有字符串id;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name=“BOOK\u SHELF\u ID”,referencedColumnName=“ID”)
私人书单;
}
我希望使用JPQL而不是本机查询按书架查找图书列表 使用
JOIN
表策略。如下所示
Query q = em.createQuery("SELECT bs.bookList FROM BookShelf bs LEFT JOIN FETCH bs.bookList WHERE bs.id = :bookShelfId");
q.setParameter("bookShelfId", bookShelfId);
List<Book> result = q.getResultList();
Query q=em.createQuery(“从BookShelf bs LEFT JOIN FETCH bs.bookList中选择bs.bookList,其中bs.id=:bookShelfId”);
q、 setParameter(“bookShelfId”,bookShelfId);
List result=q.getResultList();
看看是否有用:@RodrigoBento谢谢,我已经知道了,这和我的要求不一样。我想从OneToMany单向映射中选择许多。