【发布时间】:2012-01-24 17:04:17
【问题描述】:
是否可以搜索 Collection 字段包含特定值的实体?
例如,如果我有一个名为 Item 的实体,它包含一个名为 categories 的 Collection 字段。
public class Item {
@ManyToMany(cascade = CascadeType.ALL)
private Set<String> categories = new HashSet<String>();
}
所以我想做的是选择每个包含“蓝色”类别的项目。
我尝试了以下查询:
SELECT o FROM Item AS o WHERE o.categories = :category
SELECT o FROM Item AS o WHERE o.categoriesKeys = :category
从项目中选择 o 作为 o WHERE :category MEMBER OF o.categories
但它不起作用。
【问题讨论】:
-
“它不起作用”并没有告诉我们任何事情。你得到什么例外?使用堆栈跟踪将其包含在您的问题中。
-
您的注释有误。您不能在存储 String 的字段上使用 @ManyToMany。它必须是一个关系,否则String如何知道Item?
标签: google-app-engine gwt jpa spring-roo