我是春季JPA的新手。我有一个查询,使得我必须获取结果集并仅在顶部进行一行。我不知道如何在春季JPA中做到这一点。而且我不希望使用@Query注释完成它,因为有人问我不要在代码中进行任何查询。这是我要转换的乌里
我的查询
SELECT id,name FROM example_table ORDER BY id DESC LIMIT 1;
我在谓词文件中尝试过类似的操作:
public Predicate getLatest(){
QExampleTable example = QExampleTable.exampleTable;
return (Predicate) example.id.desc();
}
这是我的jpa存储库的样子:
public ExampleTable findOne(MyPredicate.getLatest());
但这无法解决,我知道它不会清楚。但我严重不知道如何转换以上查询。任何人都可以帮我解决这个问题
最佳答案
您可以只使用不带谓词和存储库的QueryDSL来实现。
List<ExampleTable> examples = new JPAQuery()
.from(QExampleTable.exampleTable)
.limit(1)
.orderBy(new OrderSpecifier<>(Order.DESC, QExampleTable.exampleTable.id))
.list(QExampleTable.exampleTable);