Mybatis un-à-plusieurs une collection toujours d'avoir une entité par défaut

Je veux réécrire nos services pour utiliser mybatis cartographie et se joint à notre entité pleine et complété sur la base de données/mybatis couche.

<resultMap id="ParentMap" type="org.example.mybatis.Parent">
    <id column="id" jdbcType="VARCHAR" property="id" />
    <id column="Name" jdbcType="VARCHAR" property="name" />
    <id column="SurName" jdbcType="VARCHAR" property="surName" />

    <collection property="childs" column="ChildId"
        javaType="ArrayList" ofType="org.example.mybatis.Child"
        resultMap="org.example.ChildMap" />    
</resultMap>

<resultMap id="ChildMap" type="org.example.mybatis.Parent">

    <id column="id" jdbcType="VARCHAR" property="id" />
    <id column="Name" jdbcType="VARCHAR" property="name" />
    <id column="SurName" jdbcType="VARCHAR" property="surName" />
    <id column="Age" jdbcType="INTEGER" property="age" />
</resultMap>

<sql id="Parent_Column_List">
    p.Id, p.Name, p.SurName,
</sql>  

<sql id="Child_Column_List">
    c.Id, c.ParentId c.Name, c.SurName, c.Age
</sql>  

<select id="getParent" parameterType="java.lang.String" resultMap="ParentMap" >
    select 
    <include refid="Parent_Column_List"/>

    <include refid="Child_Column_List" />
    from Parent p

    left outer join Child c on p.Id = c.ParentId
    where p.id = #{id,jdbcType=VARCHAR}

Problème est le suivant: si le parent n'a pas d'enfant, certains d'entité par défaut avec la valeur null ou de champs par défaut sera ajoutée à la liste.
Je comprends que c'est la nature de la jointure externe, mais mybatis est pas très intelligent pour comprendre que c'est faux?

Est-il une solution de contournement à ce sujet? Je ne peux pas utiliser une jointure interne depuis entité mère est nécessaire pour être en résultat.

OriginalL'auteur Shikarn-O | 2012-10-24