我想将JPA元模型添加到我的项目-Spring boot gradle
我发现很多例子我怎么能做到这一点,但都与Maven
。另外我发现这个网站:https://plugins.gradle.org/search?term=metamodel
尝试前三个插件。每个插件我得到错误:错误:不能找到符号
在类标记为lombok@Builder
注释和一些类不是实体
。它是一些插件的例子:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.iboyko.gradle.plugins:jpamodelgen-plugin:1.0.1"
}
}
dependencies {
compile ('org.hibernate:hibernate-jpamodelgen')
}
1) 在Spring引导Spring数据JPA gradle
中,哪个插件或方法是创建JPA元模型最正式(正确的)?
2)如何仅指定具有实体
的包而不扫描其他类?
3) 如何使用lombok
与it交朋友?
编辑
我将此代码添加到gradle文件:
sourceSets.configureEach { sourceSet ->
tasks.named(sourceSet.compileJavaTaskName).configure {
options.annotationProcessorGeneratedSourcesDirectory = file("$buildDir/generated/sources/java")
}
}
它生成类
精细。在那之后,我做标记
generated/sources/java
生成类的文件夹根目录(rigth clik到此文件夹并标记为)
之后,我尝试在我的存储库中导入生成的类,IDE显示:
对于每个模块,我有两个模块-my_module
和my_module_main
(我不明白为什么),所有的类都在my_module
中生成,但所有的代码都在my_module_main
中。如果我添加这个依赖项-我有这个:
您是否使用Spring Initazr生成项目?
这是您从Initializer获得的(除了我自己添加的jpamodelgen):
buildscript {
ext {
springBootVersion = '2.1.1.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
runtime('com.h2database:h2')
compileOnly('org.projectlombok:lombok')
compileOnly ('org.hibernate:hibernate-jpamodelgen')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
// Add source set to define where the generated source code should go to
sourceSets.configureEach { sourceSet ->
tasks.named(sourceSet.compileJavaTaskName).configure {
options.annotationProcessorGeneratedSourcesDirectory = file("$buildDir/generated/sources/java")
}
}
您可以在GitHub上找到一个演示项目:
https://github.com/simasch/demo-gradle-jpa
在IntelliJ中,您可以右键单击generated/sources/java并选择
我也在努力解决同样的问题。最后,我通过在编译唯一和注释处理器表单中添加两个依赖项来实现它。不要问我为什么,但它不知何故起作用了。
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
compileOnly 'org.hibernate:hibernate-jpamodelgen'
annotationProcessor('org.hibernate:hibernate-jpamodelgen')
以下是我在pom中的相关配置.xml: 提前感谢您的帮助。
问题内容: 本着与CriteriaQuery关联的类型安全的精神,JPA 2.0还具有一个API,用于支持实体的元模型表示。 是否有人知道此API的完整功能实现(生成元模型,而不是手动创建元模型类)?如果有人也知道在Eclipse中进行设置的步骤,那将是非常棒的(我认为这与设置注释处理器一样简单,但你永远不会知道)。 编辑:偶然发现了Hibernate JPA 2元模型生成器。但是问题仍然存在,因
问题内容: 本着与CriteriaQuery关联的类型安全的精神,JPA 2.0还具有一个API,用于支持实体的元模型表示。 是否有人知道此API的完整功能实现(生成元模型,而不是手动创建元模型类)?如果有人也知道在Eclipse中进行设置的步骤,那将是非常棒的(我认为它与设置注释处理器一样简单,但您永远不会知道)。 编辑:偶然发现了HibernateJPA2元模型生成器。但是问题仍然存在,因为我
在我的pom里。xml,我添加了这个依赖项: 当我通过在终端执行“mvn clean install”编译并安装项目时,模型类在以下目录中生成: 然后,如果我从Eclipse导入这个Maven项目,它可以很好地工作,而不会抱怨自动生成的模型类。 但是,如果我不在终端执行“mvn清洁安装”来生成模型类并直接导入清洁项目,Eclipse就不会生成模型类,因此会生成编译错误。 在导入和编译干净的mave
我有2个文件,一个ecore实现元模型和一个电子存储库。电子存储库以EMF格式与ecore实现元模型一起提供。我想浏览这个存储库的内容,我所知道的是我必须从实现元模型生成一个Eclipse插件,通过这个插件,我可以打开存储库并浏览它的内容。但我不知道如何生成插件并继续它。 ecore实现元模型是使用Eclipse Indigo SR2中的EMF版本2.7开发的,e-Repository是在相同的环
我使用的是java 8、spring boot 2.0.0、spring data jpa(spring boot starter data jpa)、gradle和intellij。我一直在尝试使用JPA元模型,但很难找到如何配置。 实体类的元模型不仅仅是生成的。 我猜到它会很简单,但现在看来,这可能是错误的。我该如何使用它?