• IDEA使用JPA自定义查询,报错Can‘t resolve symbol ‘Type‘


    IDEA使用JPA自定义查询,报错Can‘t resolve symbol ‘Type‘
    https://blog.csdn.net/qq_45804925/article/details/114088506

    今天做项目设计时遇到了一个问题,简单的记录一下。

    发现问题:在这里插入图片描述
    如上图所示,使用JPA的注解@Query来自定义查询,报错Can’t resolve symbol ‘Type’。

    解决问题1——不可行:
    上网上查了很多资料说是可以按照下面
    File -> Project Structure -> Facets -> JPA -> 选择右下角的“+”号 -> persistence.xml

    如下图所示:
    在这里插入图片描述
    添加之后可能还是报错,继续下面的操作:File -> Invalidate Caches/Restart ,其实就是清除缓存重启。
    但是等重启之后还是报相同的错误。

    解决问题2——可行

    • @Query注解下的JPA语句的写法,和原生的sql语句不一样。select t from Type t 代表的意思是从Type实体类类维护的表中查询所有的数据(使用JPA通过实体类去维护数据库表,所以可以通过Type实体类去对应的表中查询数据)。
    • select 实体类别名 from 实体类 实体类别名
    • 但是这里的错误原因其实是Hibernate映射关系出现了问题,hql查询时使用的from Xxx,Xxx不是实体类的名称,而是EntityName(Hibernate注解)。若 @Entity后并没有显示的指明EntityName,默认采用实体类的名称;若显示地指明了 EntityName,因此在使用hql查询的时候,要from EntityName,而不是from 实体类名。
    • 在我的代码里面,有实体类Tag、Type、Blog等,但是注解都有指明 @Entity(name=“t_type”)等,所以在Dao层应该采用以下的方法:
    @Query("select t from t_type t")
    List<Type> findTop(Pageable pageable);
    
    • 1
    • 2

    以下是实体类里面的部分代码注解截图
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    最简单的as调用js
    搜集API
    Northwind SQL Code
    玩Gmail :)
    ASP.NET操作服务 注意权限
    在Windows 7下安装Oracle 11g的解决方法
    windows 7 下安装了 oracle p6810189_10204_Win32
    ClientScript遇到UpdatePanel
    sql server 2005 ,恢复xp_cmdshell的办法
    SQL查询表、视图、存储过程、函数的创建和变更时间
  • 原文地址:https://www.cnblogs.com/sunny3158/p/16353829.html
Copyright © 2020-2023  润新知