ORM

gradleでのentity生成手順

build.gradle

configrations {
  gen
}

dependencies {

  // entityアノテーション用
  compile 'org.hibernate:hibernate-core:5.3.4.Final'

  // メタモデル生成用
  annotationProcessor 'javax.xml.bind:jaxb-api:2.3.0'
  annotationProcessor 'org.hibernate:hibernate-jpamodelgen:5.3.4.Final'

  //hbm生成,entity生成用
  gen 'com.sun.xml.bind:jaxb-core:2.3.0'
  gen 'com.sun.xml.bind:jaxb-impl:2.3.0'
  gen 'javax.xml.bind:jaxb-api:2.3.0'
  gen 'org.hibernate:hibernate-core:5.3.4.Final'
  gen 'org.hibernate:hibernate-tools:5.3.4.Final'
  gen 'org.hibernate:hibernate-entitymanager:5.3.4.Final'
  gen 'com.microsoft.sqlserver:mssql-jdbc:6.4.0.jre10'
}

// ビルド時の日本語対応
tasks.withType(JavaCompile) {
  options.encoding = 'UTF-8'
}

// hbm生成
task hbmGen << {
  ant.taskdef(name: 'genHbm',
  classname: 'org.hibernate.tool.ant.HibernateToolTask',
  classpath: configurations.gen.asPath)
  
  ant.genHbm(destdir : 'src/main/java') {
    jdbcconfiguration ( packagename : 'com.uchicom.sample.db.entity',
      revEngFile : 'src/test/resources/hibernate.reveng.xml',
      configurationFile : 'src/test/resources/hibernate.cfg.xml',
      propertyFile : 'src/test/resources/hibernate.properties'
    )
    hbm2hbmxml(destdir : 'src/test/resources/')
  }
}

// entity生成
task entityGen << {
  ant.taskdef(name : 'genEntity',
    classname: 'org.hibernate.tool.ant.HibernateToolTask',
    classpath: configuration.gen.asPath)
  
  ant.genEntity(destdir : 'src/main/java') {
    configuration (configurationfile : 'src/test/resources/hibernate.cfg.xml')
    hbm2java(jdk5 : true, ejb3 : true, destdir : 'src/main/java')
  }
}