JPA 分组按查询返回地图<枚举、列表<Bean>>



你好。

我正在尝试在以下情况下使用 EclipseLink JPA 按查询创建组:

emum BeanType


class BeanParam { id, beanType, @ManyToOne param }

enum ParamType
class Param { id, name, paramType, foo, bar }

我希望通过 BeanType 查询 <ParamType,>> 的映射,这意味着附加到该 BeanType 的参数按其参数类型分组。

你们将如何做到这一点?

谢谢!

我会首先执行一个JPQL查询:

select distinct param from BeanParam beanParam
inner join beanParam.param param
where beanParam.beanType = :beanType

然后,我将遍历返回的List<Param>,并按 paramType 对它们进行分组。对于番石榴,它将是:

ListMultimap<ParamType, Param> m = ArrayListMultimap.create();
for (Param param : params) {
    m.put(param.getParamType(), param);
}

最新更新