我正在使用 Spring JPA 框架和 Hibernate 的实现。 我在 BaseRepository 中声明了一个查询,如下所示:
@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryDslPredicateExecutor<T> {
@Query("select e.id,e.name from #{#entityName} e where e.state=1 and e.name like CONCAT(:name,'%')")
List<T> findIdAndNameByNameStartingWith(@Param("name") String name);
}
并在 Controller 中使用
@RequestMapping("/list/byName")
public HttpApiResponse findAllByNameLike(@RequestParam(defaultValue = "") String name) {
List<Platform> platforms = platformRepository.findIdAndNameByNameStartingWith(name);
return HttpApiResponse.doSuccess(platforms);
}
但是当我调试时我发现 findIdAndNameByNameStartingWith()
返回类似 [['hotel',1],['travel',2]] 的列表,而不是 List<Platform>
。谁能给我一些建议,非常感谢!
最佳答案
它会返回你所要求的内容
从 #{#entityName} e 中选择 e.id,e.name,其中 e.state=1 和 e.name,如 CONCAT(:name,'%')
尝试更改为
从 #{#entityName} e 中选择 e,其中 e.state=1 和 e.name,如 CONCAT(:name,'%')
关于java - BaseRepository 查询实体列表 返回对象数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36594480/