web-dev-qa-db-ja.com

複数のパラメーターを渡して使用するにはどうすればよいですか?

こんにちはmyBatisを始めたばかりです。

MyBatisとSpringでMyBatisとSpringを使用しています。

2つの異なるタイプのオブジェクトをパラメーターとして渡すにはどうすればよいですか?また、クエリでそれらのプロパティを使用するにはどうすればよいですか?

<update id="update" parameterType="A, B"> <!-- @@? -->
  UPDATE SOME WHERE x=A.x AND y=B.y <!-- @@? -->
</update>
14
Jin Kwon

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>
39
Roman Konoval

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>
6
Tural