【问题标题】:How to make a like query to @ElementCollection of type map?如何对类型映射的@ElementCollection 进行类似查询?
【发布时间】:2011-08-15 14:29:03
【问题描述】:

我有这样的课程:

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

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

例如,如果我的 MyEntity 类之一有一个名为“email”的属性并且值为“example@mail.com”,我如何使用条件进行查询以查找具有查询参数“example%”的实体API?

【问题讨论】:

  • AFAIL Criteria API 不支持类似于 HQL 的 properties['email']

标签: jpa criteria-api


【解决方案1】:

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

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

那段代码将针对属性映射的值创建一个like 谓词。如果我生成了 MyEntity 的 MetaModel,这可能会更容易发现......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2010-12-05
    • 2018-10-12
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多