質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Q&A

解決済

1回答

2713閲覧

mbGeneratorを実行すると自作したメソッドが上書きされてなくなってしまう。

asdfasfff

総合スコア3

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

0グッド

0クリップ

投稿2022/08/21 11:04

下記コマンドを実行してマッパーファイルなどを自動生成をしております。
./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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

MyBatis Generatorのドキュメント を見る限りだと、Javaファイルが上書きされてしまうのは、MyBatis Generatorの仕様のようです。

MBG will not merge Java files, it can either overwrite existing files or save newly generated files with a different unique name. If you make changes to the generated Java files and run MBG iteratively you will have to merge the changes by hand. When run as an Eclipse plugin, then MBG can automatically merge Java files.

自動生成したJavaファイルには手を加えない運用にするか、上にある通りEclipseのプラグインを利用して自動生成を行う必要がありそうです。

投稿2022/08/22 04:52

neko_the_shadow

総合スコア2230

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asdfasfff

2022/08/22 14:51

ご丁寧にありがとうございます!eclipse pluginで対応するようにしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問