복붙노트

[SPRING] Intellij는 스프링 부팅으로 hql을 올바르게 구성하는 방법을 설명합니다. 이제 Persistence QL 쿼리에 오류가 발생합니다.

SPRING

Intellij는 스프링 부팅으로 hql을 올바르게 구성하는 방법을 설명합니다. 이제 Persistence QL 쿼리에 오류가 발생합니다.

그래서 최대 절전 모드와 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

그래서 나는이 게시물을 발견 왜 하이버 네이트 쿼리 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: 
.....

보시다시피 나는 조금 잃어버린 ...이 설정에 어떤 문제가 있습니까?

해결법

  1. ==============================

    1.JPA 쿼리는 엔티티에 대해 유효성을 검사해야합니다.

    JPA 쿼리는 엔티티에 대해 유효성을 검사해야합니다.

  2. from https://stackoverflow.com/questions/34178331/intellij-how-to-correctly-configure-hql-with-spring-boot-now-i-get-persistence by cc-by-sa and MIT license