Mybatis一对多查询得不到多方结果
一对多查询:一个年级对应多个学生,现在要查询年级(带学生)信息。
查询结果:
[main] INFO com.java1234.service.GradeTest - 查询年级(带学生)
[main] INFO com.java1234.service.GradeTest - Grade [id=2, gradeName=大学二年级, students=null]
查到多方都是null,原来虽然在GradeMapper里声明了方法返回结果是Grade类型(如下图):
但是映射文件如果也写Grade类型的话,就查不到Grade里的Student对象信息了(因为没调用查Student对象的方法):
所以解决方法应该是,将返回类型改成resultMap="GradeMap":
再次运行,终于得到结果:
[main] INFO com.java1234.service.GradeTest - 查询年级(带学生)
[main] INFO com.java1234.service.GradeTest - Grade [id=2, gradeName=大学二年级, students=[Student [id=2, name=琼瑶, age=31, address=Address [id=2, sheng=江苏省, shi=南京市, qu=鼓楼区]], Student [id=3, name=沈京冰, age=26, address=Address [id=2, sheng=江苏省, shi=南京市, qu=鼓楼区]], Student [id=4, name=任小田, age=15, address=Address [id=2, sheng=江苏省, shi=南京市, qu=鼓楼区]], Student [id=17, name=黄龙飞, age=23, address=Address [id=2, sheng=江苏省, shi=南京市, qu=鼓楼区]]]]