こんにちはmyBatisを始めたばかりです。
MyBatisとSpringでMyBatisとSpringを使用しています。
2つの異なるタイプのオブジェクトをパラメーターとして渡すにはどうすればよいですか?また、クエリでそれらのプロパティを使用するにはどうすればよいですか?
<update id="update" parameterType="A, B"> <!-- @@? -->
UPDATE SOME WHERE x=A.x AND y=B.y <!-- @@? -->
</update>
parameterType
を指定せずに、マッパーのパラメーターに@Param
アノテーションを使用します。
@Mapper
public interface MyMapper {
void update(@Param("a") A a, @Param("b") B b);
...
}
次に、マッピングでそれらを参照します。
<update id="update" >
UPDATE SOME WHERE x=#{a.x} AND y=#{b.y}
</update>
ParameterType = "map"および@Paramアノテーションを使用します。
インターフェースで宣言されたメソッド:
void mapCategoryAndPage(@Param("categoryLocalId") Long categoryLocalId, @Param("pageLocalId") Long localId);
@Paramアノテーションの値がパラメーターの名前と同じである必要はありません
<insert id="mapCategoryAndPage" parameterType="map">
INSERT INTO
category_page_mapping (
page_local_id,
category_local_id)
VALUES
(#{pageLocalId},
#{categoryLocalId});
</insert>