【问题标题】:Pageable - sorting by values from several tables可分页 - 按多个表中的值排序
【发布时间】:2020-03-04 11:54:52
【问题描述】:

我正在编写一个从多个表中收集数据的本机查询。我还需要可分页并按联盟排序。不幸的是,Sort 立即“粘住”了第一个没有给定联盟的表的地址。是否可以动态排序和分页?我试图传递一个名称后跟“order by”的字符串,但hibernate忽略了它。

@Query(value = "SELECT pt.id as id, pt.work as workplace ,bo.virtualName as title, bo.creationDate as date FROM t_projecttemplate pt JOIN t_objecttowork ot on pt.id=ot.id JOIN t_objectplus bo on ot.id=bo.id where bo.deleted=false and bo.parent_id=?1", nativeQuery = true)
List<Map<String,Object>> getObjects (Long parentId, Pageable pageable); //want to sort by title, hibernate sticks immediately "pt."

【问题讨论】:

    标签: hibernate spring-data pageable


    【解决方案1】:

    当您调用getObjects 并将Pageable 传递给它时(例如PageRequest),它有一个sort 参数。所以你可以创建类似的东西:

    Pageable myPage = PageRequest.of(0, 10, Sort.Direction.ASC, "title");
    getObjects(parentId, myPage);
    

    【讨论】:

    • 这是 Pageabel 的创建方式,并且随着标题的传递,在 SQL 中它被附加了“pt.title”(在 Pageable no 内)
    猜你喜欢
    • 1970-01-01
    • 2013-08-23
    • 2011-03-10
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多