Spring Data中相同的查询方法和参数但返回不同

Dav*_*ães 4 spring jpa spring-data spring-data-jpa

我想使用投影来为相同的查询返回更少的元素。

Page<Network> findByIdIn(List<Long> ids);
Page<NetworkSimple> findByIdIn(List<Long> ids);
Run Code Online (Sandbox Code Playgroud)

由于查询是使用方法名称创建的,因此我必须使用哪些选项来执行相同的查询但使用不同的名称?

小智 11

我今天遇到了这个问题,接受的答案实际上是不正确的;您可以更改方法名称而不改变行为。根据 Spring Data 文档:

find(或其他引入关键字)和 By 之间的任何文本都被认为是描述性的,除非使用结果限制关键字之一,例如 Distinct 在要创建的查询上设置不同标志或 Top/First 来限制查询结果。

因此,您可以拥有一个名为的方法findByIdIn和另一个名为的方法findNetworkSimpleByIdIn,并且这两个方法将返回相同的数据(可以根据定义的返回类型转换为不同的形式)。