如何对类型映射的@ElementCollection进行类似的查询?

时间:2011-08-15 14:29:03

标签: jpa criteria-api

我有一个这样的课程:

class MyEntity {
    @ElementCollection
    Map<String, String> properties;
}

我想找出哪些MyEntity实体使用条件API具有与like查询匹配的属性值。我的意思是我想对地图条目的值进行like查询。

例如,如果我的一个MyEntity类具有名为“email”的属性且值为“example@mail.com”,那么如何使用条件创建查询参数“example%”的查询API?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 Path API中有一个joinMap(String)方法,在这种情况下可以使用:

builder.like(
    root.<MyEntity, String, String>joinMap("properties").value(), "example%");

该段代码将针对属性映射的值创建like谓词。如果我已经生成了MyEntity的MetaModel,那么可能更容易找到...