Spring boot 如何将JPA元模型与gradle、intellij IDEA一起使用?

Spring boot 如何将JPA元模型与gradle、intellij IDEA一起使用?,spring-boot,jpa,gradle,intellij-idea,metamodel,Spring Boot,Jpa,Gradle,Intellij Idea,Metamodel,我使用的是Java8、SpringBoot2.0.0、SpringDataJPA(SpringBootStarterDataJPA)、gradle和intellij。我一直在尝试使用JPA元模型,但很难找到如何配置 实体类的元模型不仅仅是生成的 我猜想这会很简单,但现在看来这可能是错误的。我如何使用它 前几天我用缩放的元模型gradle插件()做了这件事。我使用的是SpringBoot2.0.5,但我不明白为什么它不能与SpringBoot2.0.0一样工作。我也在使用Gradle4.8.1 下

我使用的是Java8、SpringBoot2.0.0、SpringDataJPA(SpringBootStarterDataJPA)、gradle和intellij。我一直在尝试使用JPA元模型,但很难找到如何配置

实体类的元模型不仅仅是生成的


我猜想这会很简单,但现在看来这可能是错误的。我如何使用它

前几天我用缩放的元模型gradle插件()做了这件事。我使用的是SpringBoot2.0.5,但我不明白为什么它不能与SpringBoot2.0.0一样工作。我也在使用Gradle4.8.1

下面是我build.gradle的摘录

buildscript {
repositories {
   maven {
     url "https://plugins.gradle.org/m2/"
   }
}
dependencies {
  classpath (
      "org.springframework.boot:spring-boot-gradle-plugin:2.0.0",
      "gradle.plugin.com.scalified.plugins.gradle:metamodel:0.0.1");
  }
}

apply plugin: "com.scalified.plugins.gradle.metamodel"

// The plugin will default to the latest version of Hibernate if this is not specified
metamodel {
   hibernateVersion = '5.2.14.Final' // For Spring Boot 2.0.0
   hibernateVersion = '5.2.17.Final' // For Spring Boot 2.0.5
}
这将在src/generated下构建元模态文件,它们可以在代码中使用。我还必须更改IntelliJ设置,因为IntelliJ的构建自动排除了一些可能会长期运行的Gradle任务。有关更多详细信息,请参阅和


为了克服这个问题,我更改了以下设置:首选项->构建/执行/部署->渐变->运行程序->将IDE构建/运行操作委托给渐变。另一种方法是根据需要手动运行metamodelCompile gradle任务。如果您不经常更改实体,那么重建所需的时间将减少一点。

前几天我使用缩放元模型gradle插件()完成了此操作。我使用的是SpringBoot2.0.5,但我不明白为什么它不能与SpringBoot2.0.0一样工作。我也在使用Gradle4.8.1

下面是我build.gradle的摘录

buildscript {
repositories {
   maven {
     url "https://plugins.gradle.org/m2/"
   }
}
dependencies {
  classpath (
      "org.springframework.boot:spring-boot-gradle-plugin:2.0.0",
      "gradle.plugin.com.scalified.plugins.gradle:metamodel:0.0.1");
  }
}

apply plugin: "com.scalified.plugins.gradle.metamodel"

// The plugin will default to the latest version of Hibernate if this is not specified
metamodel {
   hibernateVersion = '5.2.14.Final' // For Spring Boot 2.0.0
   hibernateVersion = '5.2.17.Final' // For Spring Boot 2.0.5
}
这将在src/generated下构建元模态文件,它们可以在代码中使用。我还必须更改IntelliJ设置,因为IntelliJ的构建自动排除了一些可能会长期运行的Gradle任务。有关更多详细信息,请参阅和


为了克服这个问题,我更改了以下设置:首选项->构建/执行/部署->渐变->运行程序->将IDE构建/运行操作委托给渐变。另一种方法是根据需要手动运行metamodelCompile gradle任务。如果您不经常更改实体,那么重建所需的时间就会减少一点。

JDK11/Gradle 5.0/Hibernate 5.3.7.Final

sourceSets.main.java.srcDirs += "${buildDir}/generated"

compileJava {
  options.annotationProcessorGeneratedSourcesDirectory = file("${buildDir}/generated")
}

dependencies {
  annotationProcessor("javax.xml.bind:jaxb-api")
  annotationProcessor("org.hibernate:hibernate-jpamodelgen")
}
生成的元模型类将在“构建/生成”时生成


如果您使用的是JDK8或Hibernate 5.4+,
annotationProcessor(“javax.xml.bind:jaxb api”)
可能没有必要。

JDK11/Gradle 5.0/Hibernate 5.3.7.Final

sourceSets.main.java.srcDirs += "${buildDir}/generated"

compileJava {
  options.annotationProcessorGeneratedSourcesDirectory = file("${buildDir}/generated")
}

dependencies {
  annotationProcessor("javax.xml.bind:jaxb-api")
  annotationProcessor("org.hibernate:hibernate-jpamodelgen")
}
生成的元模型类将在“构建/生成”时生成


如果您使用的是JDK8或Hibernate 5.4+,
annotationProcessor(“javax.xml.bind:jaxb api”)
可能没有必要。

此链接似乎很有用,也许您可以使用此方法此链接似乎很有用,也许您可以使用此方法