【问题标题】:How to select a list of objects as part of the constructor argument for a Hibernate group by query如何通过查询选择对象列表作为 Hibernate 组的构造函数参数的一部分
【发布时间】:2012-10-08 11:10:08
【问题描述】:

我试图弄清楚如何选择对象列表作为 Hibernate 分组查询的一部分。我知道如何以更难的方式做到这一点,但我很好奇是否有一些特殊的糖语法可以实现相同的目标。

基本上,我对这个结构有一个查询:

select com.myapp.domain.TagSummary(
   tag.id, tag.term, tag.description, tag.synonyms, count(user)
)
from User user
   join user.tags tag

我想将tag.synonyms 存储为List<Tag>。可以吗,还是需要查询叉积,查询结果回来后手动做分离?

另外,我最后真正想要的是用逗号分隔的同义词列表。因此,如果标签是spring 并且它具有同义词spring-frameworkspring-framework-3.1,那么将字符串spring-framework, spring-framework-3.1 放入构造函数会很棒。这可能吗?

编辑:我了解到我可以使用 group_concat() 来实现后半部分的功能,但它只在 MySQL 中可用。有没有办法让它在 hsqldb 中也可用?在 Spring 3.1 中,如何将此功能添加到 Hibernate?我知道我应该打电话给Configuration,但我不知道通过什么 bean 访问它。

【问题讨论】:

    标签: java sql hibernate orm group-by


    【解决方案1】:
    for (Object[]> result : query.list()) {    
        Tag tag = (Tag ) result[3];
        User user = (User) result[4];
    }
    

    您可以从此链接获取更多信息

    https://derrickpetzold.com/p/in-and-group-by-count-hibernate/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 1970-01-01
      相关资源
      最近更新 更多