MyBatisでの結合クエリの実行方法は何ですか?
MyBatisで結合クエリを実行する際は、Mapper XMLファイル内のタグやアノテーションを使用するなど、複数の方法があります。
以下は、Mapper XMLファイルを使用して結合クエリを実行する方法の例です。
- ラベルとは、次のようになります:
<resultMap id="userMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="username" />
<result property="email" column="email" />
</resultMap>
<resultMap id="orderMap" type="Order">
<id property="id" column="order_id" />
<result property="orderNo" column="order_no" />
<result property="amount" column="amount" />
<association property="user" javaType="User" resultMap="userMap" />
</resultMap>
- SQL文でJOIN演算子を使用して2つのテーブルを結合し、結果を2つのエンティティクラスにマッピングする。以下に示す:
<select id="findOrderById" parameterType="int" resultMap="orderMap">
SELECT o.*, u.user_id, u.username, u.email
FROM orders o
INNER JOIN users u
ON o.user_id = u.user_id
WHERE o.order_id = #{orderId}
</select>
- マッパーインターフェースでクエリメソッドを定義し、そのメソッド内で対応するSQL文を呼び出します。以下に示します:
public interface OrderMapper {
Order findOrderById(int orderId);
}
以上の手順により、MyBatisで結合クエリを実行することができます。また、アノテーションを使用して結合クエリを実行することもできます。具体的な方法は、MyBatis公式ドキュメントを参照してください。