3

MyBatis を使用してコレクションの実装を定義する正しい方法は何ですか。以下の例を検討してください。LinkedHashSetマッピングから戻りたい。マッピング インターフェイスSetにハードコーディングしたくない場合は、どこで実装を指定する必要がありますか。LinkedHashSet

マッピングフラグメント:

<select id="selectAll" resultType="Language">
    SELECT 
        <include refid="languageColumns"/>
    FROM language
    ORDER BY ord
</select>

マッピング インターフェイス:

public interface LanguageDAO {

    public Set<Language> selectAll();

}
4

1 に答える 1

5

MyBatis は、結果をメソッドの戻り値の型に変換します。

LinkedHashSet を使用すると、LinkedHashSet が作成されます。ただし、ジェネリック インターフェイスを指定すると、デフォルトの実装が使用されます。Set の場合は HashSet だと思います。

デフォルトの ObjectFactory を独自のものに置き換えて、その動作を制御できます。MyBatis DefaultObjectFactory を見てください。

于 2012-05-19T17:42:39.080 に答える