概要
Spring Boot + Doma で開発をしていますが、
DBのカラムの型を bigint(20)
-> varchar(255)
に変更後、
自動生成されるDao, Entityの型がLong
のままString
に変更されません。
どうすれば型が反映されるでしょうか?
環境
Eclipse
Gradle
Spring Boot
MySQL (linux, docker)
手順
- SQLの型変更
- 自動生成のDao, Entity削除
- .apt_generated 削除
- .gradle 削除
- Gradle reflesh でリビルド
試したことなど
linuxからSQLのカラムが変更済みなのは確認しました。
Gradle task
dependencies { implementation 'org.seasar.doma.boot:doma-spring-boot-starter:1.1.1' implementation 'org.seasar.doma:doma:2.24.0' annotationProcessor 'org.seasar.doma:doma:2.24.0' domaGenRuntime 'org.seasar.doma:doma-gen:2.6.1' domaGenRuntime 'mysql:mysql-connector-java' } task gen { def rootPackageName = 'xxx.xxx.xxx' def daoPackagePath = 'xxx/xxx/xxx' def workDirPath = 'work' def workDaoDirPath = "${workDirPath}/dao" delete "${workDirPath}" copy() { from "${daoPackagePath}" into "${workDaoDirPath}/org" } ant.taskdef(resource: 'domagentask.properties', classpath: configurations.domaGenRuntime.asPath) ant.gen(url: 'jdbc:mysql://xxx:0000/xxx' , user: 'xxx' , password: 'xxx' ) { entityConfig(packageName: "${rootPackageName}.entity.base", useListener: false) daoConfig(packageName: "${rootPackageName}.dao.base") sqlConfig() } copy() { from "${daoPackagePath}" into "${workDaoDirPath}/replace" filter { line -> line.replaceAll('import org.seasar.doma.Dao;', 'import org.seasar.doma.boot.ConfigAutowireable;\nimport org.seasar.doma.Dao;') .replaceAll('@Dao', '@Dao\n@ConfigAutowireable') } } copy() { from "${workDaoDirPath}/replace" into "${daoPackagePath}" } copy() { from "${workDaoDirPath}/org" into "${daoPackagePath}" } delete "${workDirPath}" } task copyDomaResources(type: Sync) { from sourceSets.main.resources.srcDirs into compileJava.destinationDir include 'doma.compile.config' include 'xxx/**/*.sql' }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/20 02:13
2021/12/20 14:37