0

私は次のようなエンティティを持っています:

@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)に指定されたタイプは、クエリの戻りタイプ[interfacejava.util.Set]と互換性がありません

FavoritePagesのタイプをリストに変更できません。どうすれば取得できますか?

4

1 に答える 1

0

他の選択肢がない場合は、次のことができます。

TypedQuery<Book> query = "from Book where bookId=:id";
query.setParameter("id",2);
Set<Page> pages = query.getSingleResult().getFavoritePages();

ただし、お気に入りのページのクエリのみに関心があるため、欠点もあります。

于 2012-05-13T09:22:08.907 に答える