[英]Why does Hibernate query have compile error in IntelliJ?
我有这个休眠代码:
Query q = session.createQuery("from MyTable where status = :status");
它编译并运行良好..
但是在 IntelliJ 中,我报告了这个错误:
无法解析表达式,无法解析符号“MyTable”
为什么 IntelliJ 抱怨?
在“项目结构”下添加“休眠”构面,然后为该构面选择“休眠配置”的“hibernate.cfg.xml”文件。 这将使 IDEA 了解您的类到表的映射,并帮助它识别 HQL 查询中的这些类。
如果您不使用“hibernate.cfg.xml”,例如对于 Spring,您可以只使用“applicationContext.xml”来初始化您的数据源,声明 Hibernate Facet 可能就足够了。
IntelliJ 正在尝试在字符串本身内验证您的 HQL 查询。 为此,它需要配置为了解您的休眠配置,以确保存在 MyTable 的映射(正如您所知,它在运行时执行 - 在执行时!)。
在您的项目的 intelliJ 中查看 hibernate 配置部分。
如果它的障碍多于帮助,则可能有一种方法可以将其关闭。
确保您的 Facet 配置正确。 我的 Spring Data JPA @Query 注释中出现错误“无法解析符号”(仅在 IntelliJ IDEA 中;当我运行它时代码本身运行良好),我需要进入项目结构、方面并添加 JPA方面。 (我假设如果一个人在没有 JPA 的情况下使用 Hibernate,那么人们只会添加 Hibernate 方面而不是 JPA 方面。)
在 Mac OS XI 的 IntelliJ IDEA 13 中,可以在“JPA 问题”下的“查询语言检查”中找到此选项
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.