これはほとんど機能しています。mybatis resultMapの関連付けを使用してオブジェクトのjava.util.Listを選択し、選択する方法
<mapper namespace="com.xyz.rb.dao.RBCellDao">
<resultMap id="rbCellResultMap" type="com.xyz.rb.model.RBCell">
<id property="id" column="id" />
<result property="fieldIds" column="fieldIds" typeHandler="com.xyz.dao.typehandlers.CommaSeparatedLongListTypeHandler" />
<association property="fields" column="fieldIds" javaType="java.util.List" select="selectFields"></association>
</resultMap>
<select id="selectFields" parameterType="String" resultType="com.xyz.abc.model.Field">
SELECT * FROM fields WHERE id IN (#{value}) <!-- this appears to get the correct value ====> Parameters: 1,2,3(String) -->
</select>
</mapper>
RBCell表データのようになります。期待どおりこれはリストを返して
| ID | FIELDIDS |
| 1 | 1,2,3 |
| 2 | 45,54321,9,78 |
、しかし、どんなにFieldIds列にあるどのような値のリストでしか1つのエントリがあります。.. 。
私はここで何が欠けていますか?最初のものだけではなく、Fieldのリスト全体を返すにはどうしたらいいですか?
私の質問にお答えいただき、ありがとうございます。問題はクエリではないと私は考えています。クエリは正常に動作するようです。私が考える問題は、mybatisがresultMapとassociationタグを使ってどのように設定されているかです。つまり、最初のSQLで説明したとおりにパラメータを使用しています。 – kasdega
いいえ、あなたは私の精巧さを誤解しています。最初のクエリは、私の解決策ではなく、クエリの仕組みを説明したい、もう1つは問題を解決する方法です。もちろん、あなたが下に出てきた答えも同様に働きます。 @kasdega – Blank