如何在hql中同时检索数据和数据?

时间:2018-03-23 11:13:33

标签: java spring hibernate spring-data-jpa jpql

我想只在一个查询中检索计数和数据列表,我想在JPA存储库中写入。我使用构造函数编写它并使用实体管理器执行,但它没有工作。它给了我一个QuerySyntaxException。这是我的疑问:

String hql = "select new core.abc(select count(*) from abc as m  where m.Id in :Ids and m.Type  = :Type,"
                + "select max(m.modificationTime) from abc as m  where m.Id in :Ids and m.Type  = :Type )";

如何在JPA存储库中编写此类查询?

1 个答案:

答案 0 :(得分:0)

我只是弄清楚你的用例senario是你想从表中获取所有记录以及记录的总数和特定列的最大值,你将该列命名为modificationTime。因此,在这种情况下会发生,如果你想用单个查询来处理表,那么你将获得名为max和count的列的无用数据。

试试JPA,

@Query(value="SELECT cb from abc cd where cd.Id in (?1) and cd.Type=?2 , (SELECT MAX(m.modificationTime) as maxModificationTime  , COUNT(*) as count FROM abc m where m.Id in (?3) and m.Type=?4) as m",nativeQuery=true)