Intellij 如何使用 spring boot 正确配置 hql.现在我得到 Persistence QL 查询被错误检查 [英] Intellij how to correctly configure hql with spring boot. Now i get Persistence QL Queries are error-checked

查看:17
本文介绍了Intellij 如何使用 spring boot 正确配置 hql.现在我得到 Persistence QL 查询被错误检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我试图使用 hibernate 和 jpa 来使用自定义查询

So i was trying to use a custom query using hibernate and jpa

@Transactional
public interface EstimateOptionsDao extends JpaRepository<EstimateOptions, Integer> {

    @Query("from estimateOptions options inner join options.company company inner join company.user user where user.name = :userName
")
    EstimateOptions EstimateOptions(String userName);

}

但是 EstimateOptions 给了我以下错误:

But the EstimateOptions gives me the following error:

Can't resolve symbol 'EstimateOptions' less... (Ctrl+F1) 
This inspection controls whether the Persistence QL Queries are error-checked

所以我找到了这篇文章 为什么 Hibernate 查询有编译IntelliJ 中的错误?.

So i found this post Why does Hibernate query have compile error in IntelliJ?.

所以我添加了一个方面来测试这个:

So i added a facet to test this:

现在我有 hibernate.cfg.xml 这样的:

Now i have hibernate.cfg.xml like this:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.url"/>
    <property name="connection.driver_class"/>
    <property name="connection.username"/>
    <property name="connection.password"/>
    <!-- DB schema will be updated if needed -->
    <!-- <property name="hbm2ddl.auto">update</property> -->
  </session-factory>
</hibernate-configuration>

像这样的弹簧配置:

spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

但是如果我在 intellij en 中使用 Persistence Tool,请执行如下简单查询:

But if i got to the Persistence Tool in intellij en do a simple query like this:

hql> 来自用户

它产生以下错误:

[2015-12-09 12:59:27] org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class []
[2015-12-09 12:59:27] java.lang.ClassNotFoundException: 
.....

如你所见,我有点迷茫...这些设置有什么问题?

As you can see i'm a bit lost... What is wrong with these settings ?

推荐答案

  1. Project structure设置(ctrl+alt+shift+s)中,选择FacetsAdd.
  2. 选择JPA
  3. 选择包含映射/注释实体的模块
  4. Modules 视图中,选择有问题的模块和下面的 JPA facet
  5. 添加对描述符的引用 (persistence.xml/orm.xml)
  6. 从下拉列表中选择您的 JPA 提供商
  1. In Project structure settings (ctrl+alt+shift+s), select Facets and Add.
  2. Select JPA
  3. Select the module containing your mappings/annotated entities
  4. In the Modules view, select the module in question and the JPA facet underneath
  5. Add a reference to your descriptor (persistence.xml/orm.xml)
  6. Select your JPA provider from the dropdown

然后应该针对您的实体验证您的 JPA 查询.

Your JPA-queries should then be validated against your entites.

这篇关于Intellij 如何使用 spring boot 正确配置 hql.现在我得到 Persistence QL 查询被错误检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆