0
0

More than 1 year has passed since last update.

MybatisのInvalid bound statement (not found)でぼんやりはまった

Posted at

Mybatis + Java + SpringBoot4

パッケージ割を変えたら、
Mapper XMLのSQLを実行できなくなった・・・。
JavaのRepositoryで定義したメソッドと紐づけできなくなったらしい。

エラー内容

Invalid bound statement (not found)

原因

MyBatisConfigのJavaクラスで定義している@MapperScanのベースパッケージ

@MapperScan(basepackage="com.example.xxx.yyy.zzz")
  • レポジトリ(Javaクラス)の場所
    com.example.xxx.yyy.zzz.aaa.bbbパッケージに配置。
  • Mapper XML ファイルの場所
    src/main/resource/xxx/yyy/zzz/aaa/bbbフォルダに配置。

解決

  • Mapper XMLファイルの場所

    MapperScanと同じ階層に配置する
    src/main/resource/xxx/yyy/zzz

なにがわかったか

  • JavaのRepositoryクラスはパッケージをMapperScanより深く配置してもよい。

    • おそらく、@Mapperアノテーションを付与しておくことが前提・・・
  • Mapper XMLファイルの場所は、@MapperScanのbasepackageと同階層にすること。

    • より深く掘ると再帰的に探してくれないのでダメ

今後の展望

  • Mapper XMLファイルを分類してフォルダを分けて管理する方法はあるか。。。?をしりたい。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0