Les outils Hibenate qui fonctionnent avec des plug-ins ne peuvent pas être utilisés avec des IDE autres qu'Eclipse. Il ne semble pas y avoir de bon plug-in gradle, donc j'en ai fait une tâche pour gradle.
Ajout d'outils hibernate pour graduer les dépendances Addendum: Lors de l'utilisation de Spring-Boot, slf4j est pris dans le test gradle, veuillez donc le commenter ou l'exclure.
build.gradle
testRuntime group: 'org.hibernate', name: 'hibernate-tools', version: '5.3.6.Final'
Ajoutez une tâche, changez le chemin et le package en fonction de l'environnement.
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)
            }
        }
    }
}
Placement du fichier 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
Placement des fichiers d'ingénierie inverse Hibernate
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>
Après cela, exécutez Task sur la console
$ gradle hbm2java
Spring Data JPA n'a pas de générateur d'entités. Je me demandais ce que tout le monde faisait, mais je devais juste utiliser fourmi avec gradle.
Recommended Posts