b.m*_*aes 5 java hibernate criteria
我的休眠实体中有以下属性:
@ElementCollection(targetClass = String.class, fetch = FetchType.EAGER)
@CollectionTable(name="FORMDATA", joinColumns = @JoinColumn(name="FORM_ID"))
private Map<String, String> formData;
Run Code Online (Sandbox Code Playgroud)
我想使用 hibernate Criteria 进行查询,其中我想将表单与给定的键值对进行匹配,如下所示:
criteria.add(Restrictions.like("formdata.key", "%"+value+"%").ignoreCase());
Run Code Online (Sandbox Code Playgroud)
其中“键”和“值”通过方法参数传递。
有人知道这应该如何运作吗?对我来说,休眠文档对此并不清楚。
非常感谢,B.
由于我自己也有同样的问题,我做了一些尝试并提出了这个解决方案:
Criteria attr = crit.createCriteria("formdata");
attr.add(Restrictions.and(
Restrictions.eq("indices", key),
Restrictions.eq("elements", "%" + value + "%")
));
Run Code Online (Sandbox Code Playgroud)
“索引”和“元素”是集合的特殊属性,可用于访问映射的键和值,呃,Map。但显然仅在该属性的子标准中 - acrit.add(Restrictions.eq("formdata.indices", "foo"))
不起作用。
我还没有找到查询映射集合的多个元素的方法。生成的 SQL 始终只生成到集合表的单个联接。
归档时间: |
|
查看次数: |
4028 次 |
最近记录: |