SELECT * FROM JiKeUser;
这个里面有如下三条记录,
id userName password
------ --------- ----------
2 jike00100 666666
3 jike00200 888888
8 author001 123456
SELECT * FROM author;
这个里面也是三条记录,
id realName userID IDCard
------ ------------ ------ --------
1 一个大牛 8 (NULL)
2 bbb 2 (NULL)
3 aaaaaa 3 (NULL)
这样关联查询自然也是三条,
SELECT * FROM author INNER JOIN jikeUser
ON jikeuser.id=author.userID ;
在java中的映射也就是author对象中有个引用指向jikeuser,
public class Author {
private Integer id; //自增主键
private JiKeUser jikeUser; //外键引用JiKeUser表
private String realName;//真实姓名
private String IDCard;//身份证
可是我用如下方法查询却只查询出来一个记录,
这是配置文件
<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 inner join jikeUser
on jikeuser.id=author.userID
</select>
下面是java代码
List<Author> ap=session.selectList("selectAuthorJoin");//联合查询
System.out.println(ap.size()); //1
但是如下的日志里面的total倒是对的,是3,
2016-04-30 05:33:43,781 [main] DEBUG [/.selectAuthorJoin] - ==> Preparing: select * from author inner join jikeUser on jikeuser.id=author.userID
2016-04-30 05:33:43,806 [main] DEBUG [/.selectAuthorJoin] - ==> Parameters:
2016-04-30 05:33:43,819 [main] DEBUG [/.selectAuthorJoin] - <== Total: 3
可就是查询出来的list的size就是1个啊,郁闷