使用MyBatis订购

时间:2012-05-14 11:58:59

标签: java sql-order-by set mybatis

使用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();

}

1 个答案:

答案 0 :(得分:4)

MyBatis将结果转换为方法的返回类型。

如果使用LinkedHashSet,它将创建LinkedHashSet。但是如果指定通用接口,它将使用默认实现。在Set的情况下,我认为它是一个HashSet。

您可以通过自己的行为来控制替换默认ObjectFactory的行为。看看MyBatis DefaultObjectFactory。