当前位置:  开发笔记 > 编程语言 > 正文

Spring Data JPA - 编写复杂的查询方法

如何解决《SpringDataJPA-编写复杂的查询方法》经验,为你挑选了1个好方法。

我正在使用:Spring Data Repository + Hibernate

我有一张桌子:Post和田地一起:User userBoardDate dateCreated

我有一张桌子:User带有字段:List friends

对于我必须指定参数的问题:

用户用户

日期dateCreated

可分页面

我想实现:

下载的所有帖子用户的所有帖子+用户的用户的朋友列表上的用户,再上岗是有一个日期早于日期dateCreated会进行排序,从最早的日期收集到的项目所有这一切,当然,网页的页面

我知道我可以在没有原生查询的情况下实现这一目标,所以请建议如何去做.我可以写一个简单的问题,但复杂的不再是原生查询.谢谢您的帮助



1> manish..:

以下JPA查询将根据需要工作:

@Query("SELECT "
    + "  DISTINCT p "
    + "FROM "
    + "  Post p "
    + "INNER JOIN "
    + "  p.user.friends f "
    + "WHERE "
    + "  (p.user = ?1 OR f = ?1) "
    + "AND p.dateCreated < ?2")
Page findAllByUserOrFriendsAndDateCreated(User user
                                               , Date dateCreated
                                               , Pageable page);

然后将此方法称为:

findAllByUserOrFriendsAndDateCreated(user
                                    , date
                                    , new PageRequest(pageNumber
                                                      , pageSize
                                                      , new Sort("dateCreated"));

Github上提供的示例项目.

此查询不能从方法名称生成,因为它需要将其中一个子句括在括号中,而Spring Data尚不支持这些子句.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有