Mongodb 中的投影未按预期工作

Projections in Mongodb not working as intended

按照 spring 数据 mongodb https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#projections 中的官方投影教程将得到

java.lang.IllegalArgumentException: Couldn't find PersistentEntity for type class com.sun.proxy.$Proxy109!

对于 NamesOnly 投影:

interface NamesOnly {

  String getFirstname();
  String getLastname();
}

@RepositoryRestResource
interface PersonRepository extends Repository<Person, UUID> {

  Collection<NamesOnly> findByLastname(@Param("lastName") String lastname);
}

这个例子可以运行吗?

您需要定义一个 @RestController class 并从控制器调用 findByLastname 存储库方法,例如:

@RestController
@RequestMapping("/api")
public class PersonController {

@Autowired
private PersonRepository personRepository;

@GetMapping(path = "/persons/findByLastname")
 public Collection<NamesOnly> findByLastname(@Param("lastName") final String lastName) {
   Collection<NamesOnly> result = personRepository.findByLastname(lastName);
   return result;
 }
}