繁体   English   中英

为什么 Hibernate 查询在 IntelliJ 中有编译错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM