java - BaseRepository 查询实体列表 返回对象数组列表

标签 java spring hibernate spring-data spring-data-jpa

我正在使用 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/

相关文章:

java - ini4j API - 读取部分的所有键并创建它的映射

java - 通用列表的 DynamoDBMarshaller

java - 制作一个 "TransactionAction"内部类

java - cvc-complex-type.2.4.c : The matching wildcard is strict, 但找不到元素 'tx:annotation- driven' 的声明

java - NoSuchMethodError : org. hibernate .SessionFactory.getCurrentSession()

java.lang.NoClassDefFoundError : Could not initialize class xxx. xxx.xxx.HibernateUtil

java - 使用 Spring MVC 设置控件属性的值

java - 从jsp调用servlet并返回jsp

java - 将线程分组以进行中断

java - 动态 JSON 传递给 REST Web 服务并使用它将数据插入 mysql 数据库