基本上,我有一个实体(简体问题),如下所示:
@Entity
public class MyClass {
@Id
private String id;
@Basic
private String name;
@Embedded
@ElementCollection
@MapKeyColumn(name="configName")
@Column(name="configValue")
@CollectionTable
private Map<String, String> config = new HashMap<>();
...
}
当我使用DataAucleus CriteriaQuery为JPA 2.x构建查询时,我的查询值为:
地图&GT; queryInput ......
其中queryINput包含如下值:
("k1", ("v1", "v3"))
("k2", ("v2", "v4"))
("k3", ("v3"))
假设(一个MyClass实例)的配置值如下:
("k1", ("v1"))
("k2", ("v2"))
("k3", ("v3"))
我想要实现的是在输入映射的所有键与配置映射的所有键匹配时搜索MyClass,并且对于每个匹配的键,配置映射的值在输入映射中的一个值中值,我将返回MyClass。在上面的示例中,将在满足条件时返回实例。
以下两个都将失败:
("k1", ("v1"))
("k2", ("v2"))
//fail because k3 doesn't present.
或
("k1", ("v2")) //fail because v2 value is not in the query value list for key k1
("k2", ("v2"))
("k3", ("v3"))
我怎么能这样做?
感谢。