Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JPA2.0中为OneToMany单向使用延迟加载?_Java_Jpa_Jpql - Fatal编程技术网

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单向映射中选择许多。