Как запросить сущности по значению их коллекции
Я использую 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
сущности, которые содержат строку "fav-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'