2016-04-30 5 views
2

以下は私のマッパーxmlです。以下mybatisアサーションはサイズ1のリストのみを返しますか?

<mapper namespace="/"> 
    <resultMap id="JiKeAuthorMap" type="Author"> 
     <id property="id" column="author.id" /> 
     <result property="realName" column="realName" /> 
     <result property="IDCard" column="IDCard" /> 
     <association property="jikeUser" column="userID" 
      javaType="JiKeUser" > 
      <id property="id" column="jikeUser.id" /> 
      <result property="userName" column="userName" /> 
      <result property="password" column="password" /> 
     </association> 

    </resultMap> 

    <select id="selectAuthorJoin" resultMap="JiKeAuthorMap"> 
     select * from author join jikeUser 
      on jikeuser.id=author.userID 
    </select> 
</mapper> 

著者FROMテーブル著者

SELECT *です。以下

id realName  userID IDCard 
------ ------------ ------ -------- 
    3 cccccc    3 (NULL) 
    2 bbb    2 (NULL) 
    1 dddddd    8 (NULL) 

テーブルJiKeUser FROM JiKeUser

SELECT *です。以下

id userName password 
------ --------- ---------- 
    2 jike00100 666666  
    3 jike00200 888888  
    8 author001 123456  

のJava POJOのメインコードである。(著者がjikeUserへの参照を持っている)

public class Author { 
    private Integer id; // 
    private JiKeUser jikeUser; //reference to JiKeUser table 

それから「select'.Theサイズは一つだけで実行するコードの下に使用します。

List<Author> ap=session.selectList("selectAuthorJoin"); 
    System.out.println(ap.size()); //1 

実際にはサイズは3である必要があります。あなたは以下を見ることができます。

SELECT * FROM author INNER JOIN jikeUser 
      ON jikeuser.id=author.userID ; 
    id realName userID IDCard  id userName password 
------ -------- ------ ------ ------ --------- ---------- 
    2 bbb   2 (NULL)  2 jike00100 666666  
    3 cccccc   3 (NULL)  3 jike00200 888888  
    1 dddddd   8 (NULL)  8 author001 123456  

しかし、私のコードでは以下のように最初の行だけが返されるのは無理です。

id realName userID IDCard  id userName password 
    ------ -------- ------ ------ ------ --------- ---------- 
     2 bbb   2 (NULL)  2 jike00100 666666  
+1

上記のようにクエリの結果がすべて必要な場合は、代わりに 'JiKeUser'をテーブルに入れる必要がある場合は、' author'ビーン自体で 'usernameとpassword'に' gettersとsetters'を使うことができます'associationプロパティ'を削除して 'result property'に置き換えてください。一方、' pojos'を書くことを避けて 'linked hashmap'のリストを返すことができます。 – SiddP

答えて

関連する問題