接口的配置文件的查询语句如下:
select user.id,user.userName,user.userAddress,article.id,article.title,article.content from user,article where user.id = article.userid and article.userid = #{id}
在数据库中直接查询是有四条结果的
但是测试类调用该方法主要内容如下:
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
List listarticles = userOperation.getUserArticles(userid);
for(Article article : listarticles){
System.out.println("title" + ":" + article.getTitle()+ ",content:" + article.getContent() + ",作者是:" + article.getUser().getUserName() + ",地址:" + article.getUser().getUserAddress());
}
} finally {
session.close();
}
经过调试,不知道为什么List listarticles = userOperation.getUserArticles(userid);执行查询的结果只有一条记录,方法也执行了,应该没问题。
还有一点:这里User 和 Article 是一对多,通过Article表中的userid查该用户有多少文章时,按道理应该查出4条,但经过调试只有一条,但是按照这个查询,结果应该有四条数据,但只查出来了一条,哪位大神能告诉这是为什么。