PDS*_*tat 46 java spring jpa spring-data spring-data-jpa
我正在查看关于方法命名的页面上的示例(http://docs.spring.io/spring-data/jpa/docs/current/reference/html/jpa.repositories.html),是否可以创建一个复杂的链方法名称,如
findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc
Run Code Online (Sandbox Code Playgroud)
在他们给出的示例中,他们只在一个值上执行OrderBy.在上面的示例中ProgDate
,StartTime
将是两个单独的值.
Oli*_*ohm 113
诀窍是通过使用方向关键字Asc
和简单地界定要排序的属性Desc
.那么您在查询方法中可能需要的是:
…OrderByProgDateAscStartTimeAsc
Run Code Online (Sandbox Code Playgroud)
注意,我们如何通过Asc
并继续使用下一个属性来结束第一个属性定义.
一般来说@Query
,一旦方法名称超过一定长度或复杂度,我们建议切换到基于查询.主要原因是客户称这些非常长的方法很尴尬.有了@Query
你而得到的查询语言的强大功能加上,可能是更高级的语言来表达查询意图合理大小的方法名.
小智 13
我正在分享另一种方法代码片段,用于实现获取操作,其中执行按多列排序的排序操作
List<Order> orders = new ArrayList<Order>();
Order StartTimeOrder = new Order(Sort.Direction.DESC, "StartTime");
orders.add(StartTimeOrder);
Order progDateOrder = new Order(Sort.Direction.ASC, "ProgDate");
orders.add(progDateOrder);
return repository.findAll(Sort.by(orders));
Run Code Online (Sandbox Code Playgroud)
是的,它应该是可能的:
试试这个:
findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc(String programme, String director, Date progStart, Date progEnd);
Run Code Online (Sandbox Code Playgroud)
我没有测试过代码,但根据我已经完成的事情,它应该可以工作.
归档时间: |
|
查看次数: |
41448 次 |
最近记录: |