mybatis
MyBatisでリストで取得するのは簡単 @SelectProvider(type = HogeSqlBuilder::class, method = "selectList") override fun findAll(): List<Hoge> MapKey を使うとSelect結果をいい感じにMapにしてくれるMyBatis。 この場合、Hoge.id がKey、Valueが Hoge のMapに</hoge>…
概要 MyBatisのSQLはXMLに書いたりアノテーションに文字列で渡す方法があるが、SqlProviderを使う方法を試してみた。 これが一番好きかもしれない。 ちなみにSpringBoot(mybatis-spring-boot-starter)を利用している。 SqlProviderの使い方 クエリの種類に…
MyBatisにはRDBが自動採番したIDを取得する機能があるのだが、下記の組み合わせでエラーになってしまった。 MyBatis:3.4.6 PostgreSQL:10.3 ### Error updating database. Cause: org.postgresql.util.PSQLException: 自動生成キーの戻りは 8.2 以上でサポー…
概要 RDBMS毎(例えばMySQLとPostgreSQL)で同じ目的のSQLでも構文に違いがあったりする。 MyBatisでは VendorDatabaseIdProvider を使うと、接続先のDBによって発行するSQLを切り替えることができる。 SpringBootで利用する方法についてまとめる。 VendorDa…
MyBatisでネストしたオブジェクトマッピングするサンプルあんまり見かけないので、残しておく。 例えばこんなデータを person id name address_id 1 yamada 11 2 sato 11 address id city 11 tokyo book id title 21 hoge 22 fuga 23 piyo person_book perso…
MybatisのネストしたresultMapの自動マッピングはデフォルトPARTIALになっている。 つまり、ネストしたオブジェクトのauto-mappingは効かないということ。 これだといちいちマッピングを定義してやらなきゃいけないのでとてもつらいのだが、設定を変えなくて…
MyBatisのConfigをJava側で動的に書き換えられないか調べてみた。 結果できなかったんだけど、備忘録として。 stackoverflow.com org.apache.ibatis.session.Configuration に値を突っ込むことでどうにかなりそう? configuration.getVariables().put("globa…