Как запрашивать объекты по значению их коллекции

Я использую jpa, и у меня есть следующий объект:

@Entity
@Table(name="favorites_folders")
public class FavoritesFolder {

     private static final long serialVersionUID = 1L;

     @Id
     private String id;

     @NotNull
     @Size(min = 1, max = 50)
     public String name;

     @ElementCollection(fetch = FetchType.LAZY)
     @CollectionTable(
        name="favorites_products",
        joinColumns=@JoinColumn(name="folder_id")
        )
     @Column(name="product_id")
     @NotNull
     private Set<String> productsIds = new HashSet<String>();
}

Что я хочу сделать, так это получить набор объектов FavoritesFolder, который содержит строку "favorite- id" в их наборе элементов productsIds.

Кто-нибудь знает, как это можно сделать в критерии api?

Обновление:
Я думаю, что следующий sql должен помочь, но я не уверен, как это сделать в JPQL или Criteria API :

select * from favorites_folders join favorites_products on favorites_folders.id = favorites_products.folder_id where favorites_products.product_id = 'favorite-id'
9
задан Noam 23 May 2012 в 04:25
поделиться