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

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

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

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

Gradle

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

MyBatis

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

解決済

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

asdfasfff
asdfasfff

総合スコア2

Java

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

Gradle

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

MyBatis

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

1回答

0リアクション

0クリップ

553閲覧

投稿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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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

Gradle

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

MyBatis

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