- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-10-30T09:24:14+00:00","default:wikiadmin","wikiadmin")
-OR Mapperについて調査
*主要製品 [#peedb0ea]
**MyBatis [#f825516d]
+sonar
-SQLとObjectのマッパー
-XMLにSQLを記載する、XMLにmethod名のIDをつけると該当メソッドはそのSQLを実施する。
** [#k81ad88c]
***Includeする [#ffff16e3]
<select id="countById" resultType="_long">
SELECT
COUNT(DISTINCT A.id)
<include refid="searchConditionFragment">
<property name="condition" value="#{condition}"/>
</include>
</select>
<sql id="searchConditionFragment">
FROM
Hoge A
</sql>
***In条件に展開する [#cd51c6dc]
<if test="condition.prefecture != null and !condition.prefecture.isEmpty()">
AND A.prefecture_id IN
<foreach item="prefecture" collection="condition.prefecture" open="(" separator="," close=")">
#{prefecture.id}
</foreach>
</if>
***コールバック処理 [#pc56c218]
ResultHandlerを使う。
***Springbootで利用 [#q21238d8]
-V1.5.3と利用すると@Mapperつけても無視される。なのでブートクラスにMapperscanのパッケージ名+@Mapper併用で何とか起動
**Springbootとの連携 [#h0d28869]
-@Mapperをつけるか
-@MapperScanを使って対象のパッケージを指定する。
<mybatis:scan base-package="org.mybatis.spring.sample.mapper" />
@MapperScan("org.mybatis.spring.sample.mapper")
***SQLファイル [#l4681955]
<sql id="searchConditionFragment">
Select
*
FROM
TableA
<if test="condition.someFlg != null and condition.someFlg">
JOIN TableB ON TableA.id = TableB.tablea_id
</if>