我有一个像:
这样的实体@Entity
public class Book{
int bookId;
@ManyToMany
Set<Page> favoritePages;
// getters/setters
}
Page
也是一个实体。现在,如果我写一个查询:
EntityManager em = // somehow get the entity manager
TypedQuery<Page> query = "Select favoritePages from Book where bookId=:id";
query.setParameter("id",2);
List <Page> pages = query.getResultList();
现在,这给了我一个错误
为TypedQuery(Pages)指定的类型与查询不兼容 返回类型[interface java.util.Set]
我无法将favoritePages的类型更改为列表 。我怎样才能找回它?
答案 0 :(得分:0)
如果您没有其他选择,您可以这样做:
TypedQuery<Book> query = "from Book where bookId=:id";
query.setParameter("id",2);
Set<Page> pages = query.getSingleResult().getFavoritePages();
但它也有它的缺点,因为你只对查询喜欢的页面感兴趣。