Mybatis-さらにコードを生成するためのリバースエンジニアリング-エラーは報告されず、ディレクトリのみがファイルなしで生成されます

背景:mybatis-plusには、テンプレートに従ってmybatisマッパー、dao、サービス、コントローラーコードを生成するリバースエンジニアリングの機能があります。

繰り返し:コード生成の基本構成が実行され、何も生成されません。構成されたパッケージディレクトリのみが生成されますが、以下に実際のコードファイルはなく、コンソールにエラーは報告されません。mybatis-pulsログはすべてデバッグ形式であるため、何も出力されず、通常の出力もありませんが、生成されたディレクトリを求めるエラーは発生せず、コードの半分が正しいことを証明するため、デバッグする必要があります。エラーの原因。

ブレークポイントのデバッグ:最後に、AbstractTemplateEngineのgetObjectMapメソッドの195行目をトレースします。

return config.getInjectionConfig().prepareObjectMap(objectMap);

objectMapパラメーターが解析された後、injectionConfigパラメーターがnullポインターであることがわかりました。

次に、結果として生じるnullポインタ例外

したがって、例外がキャッチされてエラーがスローされ、解析ファイルの生成が失敗します。

    } catch (Exception var11) {
            logger.error("无法创建文件,请检查配置信息!", var11);
        }

公式文書を確認してください:https//mp.baomidou.com/guide/generator.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%A3%E7%A0% 81%E6%A8%A1%E6%9D%BF

これはカスタム属性用です。パラメータ解析ファイルを設定して、コードの生成時に置き換えることができます。これは通常の使用法です。

しかし、現在使用する外部カスタム属性がないため、この外部パラメーターを定義しなかったため、InjectionConfigオブジェクトがnullになり、結果としてnullポインター例外が発生してプログラムが中断され、ファイルの生成に失敗しました。

したがって、使用するかどうかに関係なく、公式ドキュメントに従ってこのパラメータを追加するだけです。

まとめ:1。mybatis-plusのデフォルトのログ印刷は完全ではないため、エラーを見つけるのは難しく、デバッグするだけです。2.カスタム外部パラメーターを使用しない場合はnullにする必要がありますが、ここでの要件はnullである必要があり、プロンプトが表示されないため、不合理なエラーです。3.ソリューションと公式ドキュメントのカスタム属性コードは問題ありません。

mybatis-plusのログ構成に加えて、このログ生成プロンプトを追加すると、完全に出力されます。

log4j.propertiesファイル、src / main / resourcesの下に置きます

コンテンツ:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: - %m%n

 

おすすめ

転載: blog.csdn.net/Mint6/article/details/98476339