如何解决Intellij如何使用Spring Boot正确配置hql现在我得到持久性QL查询已进行错误检查
- 在
Project structure
设置(ctrl + alt + shift + s)中,选择Facets
和Add
。 - 选择
JPA
- 选择包含您的映射/注释实体的模块
- 在
Modules
视图中,选择有问题的模块和JPA
下面的构面 - 添加对描述符的引用(persistence.xml / orm.xml)
- 从下拉列表中选择您的JPA提供商
然后,应针对您的实体验证您的JPA查询。
解决方法
所以我试图通过hibernate和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\n")
EstimateOptions EstimateOptions(String userName);
}
但是,这EstimateOptions
给了我以下错误:
Can't resolve symbol 'EstimateOptions' less... (Ctrl+F1)
This inspection controls whether the Persistence QL Queries are error-checked
所以我发现了这篇文章为什么Hibernate查询在IntelliJ中有编译错误?。
所以我添加了一个方面来测试:
现在我有这样的hibernate.cfg.xml:
<?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的Persistence Tool进行了如下简单查询:
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:
.....
如您所见,我有点迷路…这些设置有什么问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。