사용자 도구

사이트 도구


gradle:jpa_metamodel_generation

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
gradle:jpa_metamodel_generation [2015/02/04 10:17]
kwon37xi
gradle:jpa_metamodel_generation [2018/06/12 17:30]
kwon37xi [QueryDSL]
줄 5: 줄 5:
   * **Java 6** 이상에서만 작동한다.   * **Java 6** 이상에서만 작동한다.
  
-====== Cannot find symbol 오류 ======+===== QueryDSL ===== 
 +  * [[java:querydsl|QueryDSL]]의 경우 [[https://github.com/ewerk/gradle-plugins/tree/master/querydsl-plugin|Graldle QueryDSL Plugin]]으로 해결 가능하다. 
 +  * ''compileQueryDsl'' task로 코드 생성을 할 수 있다.<code sh> 
 +gradlew clean cleanQuerydslSourcesDir compileQueryDsl 
 + 
 +# cleanQuerydslSourcesDir 를 하지 않을 경우 기존 생성된 코드 때문에 오류가 발생함. 
 +</code> 
 +===== Cannot find symbol 오류 =====
   * [[java:querydsl|QueryDSL]]과 Hibernate/Eclipse Metamodel Generator를 함께 사용할 때 아직 생성되지 않은 메타 모델 클래스를 사용하는 코드들 때문에 ''cannot find symbol'' 에러가 발생할 수 있는데, 이는 이 둘을 서로 따로 생성했을 때 발생하는 현상이다.   * [[java:querydsl|QueryDSL]]과 Hibernate/Eclipse Metamodel Generator를 함께 사용할 때 아직 생성되지 않은 메타 모델 클래스를 사용하는 코드들 때문에 ''cannot find symbol'' 에러가 발생할 수 있는데, 이는 이 둘을 서로 따로 생성했을 때 발생하는 현상이다.
-  * 정황상 [[java:lombok|Lombok]]을 함께 사용할 경우 lombok annotation processor가 돌 때 발생하는 것으로 보인다.+  * 정황상 [[java:lombok|Lombok]]을 함께 사용할 경우 각 AP가 실행된 뒤에 다시 lombok AP가 돌면서 발생하는 것으로 보인다.
   * 이 둘을 함께 지정해서 APT 를 수행해야 에러가 나지 않는다.   * 이 둘을 함께 지정해서 APT 를 수행해야 에러가 나지 않는다.
 <code> <code>
줄 15: 줄 22:
  
  
-====== Gradle Annotation Process 예 ======+===== Gradle Annotation Process 예 =====
 http://alvinalexander.com/java/jwarehouse/hibernate/build.gradle.shtml 에 있는 것을 옮겼다. http://alvinalexander.com/java/jwarehouse/hibernate/build.gradle.shtml 에 있는 것을 옮겼다.
 +
 +
 +Gradle 기반으로 정적 분석 도구 사용시에 여기서 자동 생성된 클래스는 정적 분석에서 예외처리해줘야 한다.(''/Q[A-Z].*\.class/'', ''/.*\_.class/'') [[java:static_analysis|Java Static Analysis]] 를 참조한다.
 +
 +
  
 <code groovy> <code groovy>
줄 64: 줄 76:
             "-encoding", "UTF-8",             "-encoding", "UTF-8",
             "-s", targetDir.absolutePath,             "-s", targetDir.absolutePath,
-            "-processor", "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor" // 이 줄은 안해도 된다. 안하면 모든 어노테이션 프로세서 실행 +            // processor 지정은 안해도 된다. 안하면 모든 어노테이션 프로세서 실행 
-        ]+            "-processor", "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor"         ]
     )     )
 } }
gradle/jpa_metamodel_generation.txt · 마지막으로 수정됨: 2022/06/03 09:23 저자 kwon37xi