Hibenate-Tools, die mit Plug-Ins funktionieren, können nicht mit anderen IDEs als Eclipse verwendet werden. Es scheint kein gutes Gradle-Plug-In zu geben, also habe ich es zu einer Aufgabe für Gradle gemacht.
Hibernate-Tools hinzugefügt, um Abhängigkeiten zu gradeln Nachtrag: Wenn Sie Spring-Boot verwenden, wird slf4j im Gradle-Test abgefangen. Bitte kommentieren Sie es aus oder schließen Sie es aus.
build.gradle
testRuntime group: 'org.hibernate', name: 'hibernate-tools', version: '5.3.6.Final'
Aufgabe hinzufügen, Pfad und Paket je nach Umgebung ändern.
build.gradle
task hbm2java{
def basePackage = "com.hoge.entity.jpa.gen"
def resourcesDir="$projectDir/src/main/resources"
def srcDir="$projectDir/src/main/java"
def preparedJdbcConfiguration = [
propertyfile: resourcesDir+"/hibernate.properties",
revengfile: resourcesDir+"/hibernate.reveng.xml",
packagename: basePackage
]
doLast {
project.ant {
taskdef(name: "hibernatetool",
classname: "org.hibernate.tool.ant.HibernateToolTask",
classpath: configurations.testRuntime.asPath
)
hibernatetool(destdir: srcDir,
templatepath: 'templates'
) {
jdbcconfiguration(preparedJdbcConfiguration)
classpath{
pathelement( path: "config" )
}
hbm2java(jdk5: true,ejb3: true)
}
}
}
}
Platzierung der Datei hibernate.properties
hibernate.properties
hibernate.connection.driver_class = com.mysql.cj.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost:3306/hoge_db?useSSL=false
hibernate.connection.username = user
hibernate.connection.password = passwd
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=1800
hibernate.c3p0.max_statements=50
hibernate.dialect = org.hibernate.dialect.MySQLDialect
Platzierung von Reverse Engineering-Dateien im Ruhezustand
xml:hibernate.reveng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering
SYSTEM "http://hibernate.org/dtd/hibernate-reverse-engineering-3.0.dtd">
<hibernate-reverse-engineering>
<schema-selection match-catalog="hoge_db" match-schema=".*" match-table="foo" />
<schema-selection match-catalog="hoge_db" match-schema=".*" match-table="bar" />
</hibernate-reverse-engineering>
Führen Sie danach Task auf der Konsole aus
$ gradle hbm2java
Spring Data JPA verfügt nicht über einen Entitätsgenerator. Ich fragte mich, was alle machten, aber sie mussten nur Ameise mit Gradle verwenden.
Recommended Posts