gpt4 book ai didi

java - Gradle 不会自动发现 JPA 实体类

转载 作者:太空宇宙 更新时间:2023-11-04 13:30:57 25 4
gpt4 key购买 nike

我是 Gradle 新手。我正在尝试运行一些测试,但它们失败并显示消息显示实体类未映射。当我在 persistence.xml 中显式映射类时,一切正常。我做了一些研究,发现将这些行添加到构建脚本中可以解决问题:

sourceSets.main.output.resourcesDir = sourceSets.main.output.classesDir
sourceSets.test.output.resourcesDir = sourceSets.test.output.classesDir

但这对我来说根本不起作用。如果我不在部署描述符中指定类,我仍然会收到错误。

可能出了什么问题?

更新

我的项目结构:

My project structure

我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="bd">
<class>br.desenvolvimento.teste.modelo.Cliente</class>
<class>br.desenvolvimento.teste.modelo.Banco</class>
<class>br.desenvolvimento.teste.modelo.AgenciaBancaria</class>
<class>br.desenvolvimento.teste.modelo.ContaBancaria</class>
<class>br.desenvolvimento.teste.modelo.Filho</class>
<class>br.desenvolvimento.teste.modelo.Projeto</class>
<class>br.desenvolvimento.teste.modelo.Telefone</class>

<properties>
<property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
</persistence>

最佳答案

您使用哪个 Gradle 版本?如果是 5.x,您需要像下面这样更新您的行:

sourceSets.main.output.resourcesDir = sourceSets.main.java.outputDir
sourceSets.test.output.resourcesDir = sourceSets.test.java.outputDir

您的 sourceSets.main.output.classesDir 在 Gradle 4.x 上已弃用,并在 Gradle 5.x 上已撤回。

就我而言,build.gradle 的一部分如下:

sourceSets {
java {
main {
output.resourcesDir = java.outputDir
}
}
}

请参阅:SourceSetOutput - Gradle DSL 版本 5.5 https://docs.gradle.org/current/dsl/org.gradle.api.tasks.SourceSetOutput.html

关于java - Gradle 不会自动发现 JPA 实体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32214111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com