SpringDataJpa的@Query注解报错的解决

 更新时间:2021年12月08日 11:37:07   作者:D丶ream  
这篇文章主要介绍了SpringDataJpa的@Query注解报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringDataJpa @Query注解报错

public interface TimeContentRepository extends JpaRepository<TimeContent,String> {
    @Query(value = "select id,user_id as userId,create_time as createTime " +
            "from time_content where create_time = ?1 and user_id = ?2")
    List<TimeContent> findOnDay(String create_time,String userId);
}

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: time_content is not mapped

注解中写的是HQL,所以查询的是对象,而不是表名

改为

public interface TimeContentRepository extends JpaRepository<TimeContent,String> {
    @Query(value = "select id,user_id as userId,create_time as createTime " +
            "from TimeContent where create_time = ?1 and user_id = ?2")
    List<TimeContent> findOnDay(String create_time,String userId);
}

Caused by: org.hibernate.QueryException: No data type for node: org.hibernate.hql.internal.ast.tree.IdentNode +-[IDENT] IdentNode: 'user_id' {originalText=user_id}

同样的问题,查询的字段也是对象的成员,不是表的字段

SpringDataJpa @query注解使用原生代码报错

之前用过@query 原生代码的查询方式,正常加注解就可以使用,大概形式为:

 @Query(value="select * from table",nativeQuery=true)
   K_KC54 getK_KC54UsingOriginSQL(String aac001);

如上形式,完美解决本地查询问题。

但是,这是和往常一样使用@query 原生代码查询,程序报如下错误:

org.springframework.data.jpa.repository.query.InvalidJpaQueryMethodException: Cannot use native queries...

经过问题分析与网上查找原因发现问题:

@query 原生查询不能和分页查询的pageable一起使用。为解决这一问题,还想使用pageable分页功能。修改原生代码如下形式即可解决问题:

@Query(value="from S_TC70  aac001=?1 "
,countQuery="select count(1) from S_TC70  aac001=?1 ")
Page<S_TC70> getUseOriginS_TC70(String aac001,Pageable pageable);

顺利解决问题!以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java9的一些新特性介绍

    Java9的一些新特性介绍

    这篇文章主要介绍了Java9的一些新特性介绍,Java随着其开源的特点和甲骨文的推动正在不断改进中,需要的朋友可以参考下
    2015-07-07
  • SpringBoot中MyBatis-Plus 查询时排除某些字段的操作方法

    SpringBoot中MyBatis-Plus 查询时排除某些字段的操作方法

    这篇文章主要介绍了SpringBoot中MyBatis-Plus 查询时排除某些字段的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 定时任务@Scheduled用法及其参数使用

    定时任务@Scheduled用法及其参数使用

    这篇文章主要介绍了定时任务@Scheduled用法及其参数使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • IDEA无法创建JDK1.8版本的Springboot项目问题解决(2种方法)

    IDEA无法创建JDK1.8版本的Springboot项目问题解决(2种方法)

    本文主要介绍了IDEA无法创建JDK1.8版本的Springboot项目问题解决,包含两种解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • Java的Synchronized关键字学习指南(全面 & 详细)

    Java的Synchronized关键字学习指南(全面 & 详细)

    这篇文章主要给大家介绍了关于Java的Synchronized关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解Java中CAS机制的原理与优缺点

    详解Java中CAS机制的原理与优缺点

    CAS 英文就是 compare and swap ,也就是比较并交换,这篇文章主要来和大家介绍一下Java中CAS机制的原理与优缺点,感兴趣的小伙伴可以了解一下
    2023-06-06
  • 浅谈java线程状态与线程安全解析

    浅谈java线程状态与线程安全解析

    本文主要介绍了浅谈java线程状态与线程安全解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • SpringCloud 分布式微服务架构操作步骤

    SpringCloud 分布式微服务架构操作步骤

    SpringCloud是一种微服务的框架,利用它我们可以去做分布式服务开发,这篇文章主要介绍了SpringCloud 分布式微服务架构,需要的朋友可以参考下
    2022-07-07
  • spring如何解决循环依赖问题

    spring如何解决循环依赖问题

    Spring在单例模式下用三级缓存设计解决setter方法注入bean属性循环依赖问题,但无法解决多例Bean和构造方法注入参数的循环依赖,三级缓存通过A、B两对象互相注入属性的过程解决循环依赖,其中,构造方法的循环依赖无法解决是因为创建对象会走构造方法
    2024-10-10
  • Java中RabbitMQ消息队列的交换机详解

    Java中RabbitMQ消息队列的交换机详解

    这篇文章主要介绍了Java中的RabbitMQ交换机详解,消息队列是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器,需要的朋友可以参考下
    2023-07-07

最新评论