我有一个实体订阅,它具有以下属性
name,BillOfLading,validTo(Date),ValidFrom(Date)
示例数据:
Name BillOfLading ValidTo ValidFrom A 100101 1/28/2016 3/28/2017 A 100102 1/29/2016 3/29/2017 B 100103 1/30/2016 3/30/2017 C 100104 1/31/2016 3/31/2017 A 100105 1/28/2016 3/28/2017
这里我试图以Map
的形式获得结果Map<String,List<Subscription>>
映射包含(键,值)对,其中Name为键,属于指定名称的订阅列表。
假设名称 A 有3条记录所以现在密钥将是 A ,而值将是属于 A 的订阅列表。
此外,我还需要根据数据库中 A 订阅的数量对地图进行排序。
注意:上面是我的场景的简短故事。所以,我没有把我的实际代码。
如果有可能在休眠状态下返回Map,请帮助我。
答案 0 :(得分:1)
我看不到可以通过JPQL / HQL查询返回Map<String,List<Subscription>>
。
我从JPQL返回Map
,例如:
@Query("SELECT new map(r.code, r.name) FROM Substance r GROUP BY r.code, r.name")
List<Map<String, String>> select();
如果您需要复杂的返回类型,请查看Hibernate的ResultTransformer
接口及其实现,它可以自定义您想要的结果。我从来没有用过这个。有一篇博文显示了这个界面的用法:Why you should use the Hibernate ResultTransformer to customize result set mappings