gpt4 book ai didi

java - 映射键值的 Hibernate 条件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:31 25 4
gpt4 key购买 nike

我的 hibernate 实体中有以下属性:

@ElementCollection(targetClass = String.class, fetch = FetchType.EAGER)
@CollectionTable(name="FORMDATA", joinColumns = @JoinColumn(name="FORM_ID"))
private Map<String, String> formData;

我想用 hibernate Criteria 做一个查询,我想用给定的键值对匹配一个表单,就像这样:

criteria.add(Restrictions.like("formdata.key", "%"+value+"%").ignoreCase());

其中“键”和“值”通过方法参数传递。

有人知道这应该如何工作吗?对我来说,hibernate 文档对此并不清楚。

非常感谢,B.

最佳答案

因为我自己也有同样的问题,所以我做了一些尝试和错误并想出了这个解决方案:

Criteria attr = crit.createCriteria("formdata");
attr.add(Restrictions.and(
Restrictions.eq("indices", key),
Restrictions.eq("elements", "%" + value + "%")
));

“索引”和“元素”是集合的特殊属性,可用于访问映射的键和值,呃,Map。但显然仅在该属性的子标准中 - crit.add(Restrictions.eq("formdata.indices", "foo")) 不起作用。

我还没有找到查询映射集合的多个元素的方法。生成的 SQL 总是只生成一个到集合表的连接。

关于java - 映射键值的 Hibernate 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16401550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com