Q&A
下記コマンドを実行してマッパーファイルなどを自動生成をしております。
./gradlew mbGenerator
自動生成したsqlとは別に自作のsqlもxxMapper.xmlやxxMapper.javaに記載しています。
xxMapper.xmlは自作したsqlは上書きされず残っています。
ただ、Mapper.javaの方はファイルごと上書きされているようで、自作のメソッドが削除されています。
上記コマンドを実行した際にxxMapper.javaで自作したsqlが消されないようにするにはどうしたらよろしいでしょうか。
解消法などご存知でしたら教えていただけないでしょうか。
(自作したsqlに@mbg.generatedはつけていません。)
gradleの設定は下記です。
// プラグイン plugins { id 'org.springframework.boot' version '2.7.2' id 'io.spring.dependency-management' version '1.0.12.RELEASE' id 'java' id 'java-library' id 'eclipse' id "com.thinkimi.gradle.MybatisGenerator" version "2.4" // MyBatis Generatorプラグイン } // グループ名 group = 'xxx' // java version sourceCompatibility = '17' repositories { mavenCentral() } dependencies { // spring mybatis starter implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // mybatis generator core implementation 'org.mybatis.generator:mybatis-generator-core:1.3.7' // mybatis 3rd party pulugin implementation 'com.itfsw:mybatis-generator-plugin:1.3.9' // spring jdbc implementation 'org.springframework.boot:spring-boot-starter-jdbc' // mysql connector runtimeOnly 'mysql:mysql-connector-java' // spring starter testImplementation 'org.springframework.boot:spring-boot-starter-test' // spring dev tools implementation 'org.springframework.boot:spring-boot-devtools' // lombok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' } configurations { mybatisGenerator compileOnly { extendsFrom annotationProcessor } } // mybatis設定 mybatisGenerator { verbose = true // 設定ファイル configFile = "src/main/resources/mybatis/generatorConfig.xml" dependencies { mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.3.7' mybatisGenerator 'com.itfsw:mybatis-generator-plugin:1.3.9' mybatisGenerator 'mysql:mysql-connector-java' } }
mybatisGeneratorConfigの設定は下記です。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 実行方法は ./gradle clean mbGenerator --> <context id="schema" targetRuntime="MyBatis3"> <property name="javaFileEncoding" value="UTF-8" /> <plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin"> <property name="searchString" value="Example$"/> <property name="replaceString" value="Criteria"/> </plugin> <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <plugin type="org.mybatis.generator.plugins.VirtualPrimaryKeyPlugin" /> <plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin" /> <plugin type="com.itfsw.mybatis.generator.plugins.LombokPlugin"> <property name="@Data" value="true"/> <property name="@Builder" value="false"/> <property name="@AllArgsConstructor" value="true"/> <property name="@NoArgsConstructor" value="true"/> <property name="@Accessors(chain = true)" value="false"/> <property name="supportSuperBuilderForIdea" value="false"/> </plugin> <plugin type="com.itfsw.mybatis.generator.plugins.ModelBuilderPlugin"/> <plugin type="com.itfsw.mybatis.generator.plugins.ExampleEnhancedPlugin"> <property name="enableAndIf" value="true"/> </plugin> <plugin type="com.itfsw.mybatis.generator.plugins.BatchInsertPlugin"> <property name="allowMultiQueries" value="false"/> </plugin> <plugin type="com.itfsw.mybatis.generator.plugins.ModelColumnPlugin"/> <plugin type="com.itfsw.mybatis.generator.plugins.UpsertPlugin"> <property name="allowMultiQueries" value="false"/> <property name="allowBatchUpsert" value="fasle"/> </plugin> <commentGenerator> <property name="suppressDate" value="true"/> </commentGenerator> <jdbcConnection driverClass="xxx" connectionURL="xxx" userId="xxx" password="xxx" /> <javaTypeResolver> <property name="useJSR310Types" value="true"/> </javaTypeResolver> <javaModelGenerator targetPackage="xxx" targetProject="xxx"> </javaModelGenerator> <!-- mapper.xmlの出力先と設定 --> <sqlMapGenerator targetPackage="xxx" targetProject="xxx"> </sqlMapGenerator> <!-- mapper.javaの出力先と設定 --> <javaClientGenerator targetPackage="xxx" targetProject="xxx" type="XMLMAPPER"> </javaClientGenerator> <table schema="xxx" tableName="M\_%"> <property name="ignoreQualifiersAtRuntime" value="true"/> </table>
実行時のログは下記になります。
[ant:mbgenerator] Existing file C:\Users\.....\mapper\xxMapper.java was overwritten
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/08/22 14:51