三流プログラマの雑記

プログラム、ゲーム、株、その他雑記など書いてます。

【mybatis】 ネストしたオブジェクトのマッピングを行う

今更ながらですが、mybatis を触っているときにハマってしまった|||orz|||

https://github.com/rararamorio/mybatis_sample

と言いながら、まとめるのがめんどいのちほど見直せるようにとりあえず解消時のソースをgithubに登録してみた。

表題にもあるように、ネストしたオブジェクトを取得する際の処理でハマっていました(^^;)

ネストしたオブジェクトってどういうの?ってな話だと思うのですが、以下のようなデータを想定しています。

person -- 1:多 -- book -- 1:1 -- category

mybatis の 設定ファイルを以下として実行していると、 categoryがnullとなって取得出来ない状態でした。


categoryが取得できない

うーん、、、と思いながらもひらめき試したら動いた版のソース


categoryが取得できる

bookを取得するときは、b_、categoryを取得するときは、c_ というような columnPrefix を指定した場合、
categoryを取得するときのカラム名は b_c_ としないといけなかったんですね。

きっとほかに良い方法があると思うのですが、第一段階としてはこのような感じになりました(^^;)

あと、オプションで autoMapping というのがあるので試してみようかと思います。
きっと上記の設定をもうちょっと短縮できそうな、、、そんな気がします。