JPA Criteria API 사용에 Metamodel을 사용하기 위해, Entity 에서 자동으로 Metamodel을 생성하는 generator를 설정한다. gradle 기준으로 설명한다.
// 생략... gradle 문법에 의해 buildscript 바로 다음에 위치
plugins {
id "at.comm_unity.gradle.plugins.jpamodelgen" version "1.1.4"
}
// 생략...
jpaModelgen {
library = "org.hibernate:hibernate-jpamodelgen:5.2.16.Final"
jpaModelgenSourcesDir = "src/main/java"
}
compileJava.options.compilerArgs += ["-proc:none"]
// 생략...
dependencies {
// 생략...
provided group: 'org.hibernate', name: 'hibernate-jpamodelgen', version: '5.2.16.Final'
}gradle plugin인 jpamodelgen 의 tasks 에서 compileJpaModelgen 을 실행하면 된다.
위 설정대로라면, jpaModelgenSourcesDir = "src/main/java" 이어서, Entity와 metamodel 이 같은 디렉토리로 묶이게 된다. 만일, 다른 곳으로 분리하고 싶다면, 추가설절이 필요할 것이다.
https://github.com/iboyko/gradle-plugins/tree/master/jpamodelgen-plugin