我正在使用:Spring Data Repository + Hibernate
我有一张桌子:Post
和田地一起:User userBoard
和Date dateCreated
我有一张桌子:User
带有字段:List
对于我必须指定参数的问题:
用户用户
日期dateCreated
可分页面
我想实现:
下载的所有帖子用户的所有帖子+用户的用户的朋友列表上的用户,再上岗是有一个日期早于日期dateCreated会进行排序,从最早的日期收集到的项目所有这一切,当然,网页的页面
我知道我可以在没有原生查询的情况下实现这一目标,所以请建议如何去做.我可以写一个简单的问题,但复杂的不再是原生查询.谢谢您的帮助
以下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") PagefindAllByUserOrFriendsAndDateCreated(User user , Date dateCreated , Pageable page);
然后将此方法称为:
findAllByUserOrFriendsAndDateCreated(user , date , new PageRequest(pageNumber , pageSize , new Sort("dateCreated"));
Github上提供的示例项目.
此查询不能从方法名称生成,因为它需要将其中一个子句括在括号中,而Spring Data尚不支持这些子句.