问答详情
源自:4-9 DAO层单元测试编码和问题排查(下)

关于视频中的多对一的疑问,

//变通,多对一    

private Seckill seckill;    

没有在Mybatis中配置多对一的关系,Seckill 是如何把结果返回?

小白提问,谢谢。


提问者:稀饭西红柿 2016-07-28 15:29

个回答

  • Java攀登者
    2019-11-15 18:24:12

    就是通过设置别名的时候,把值set进Secskill.如果别名里面的类名不是Secskill的话,单元测试会输出NULL

  • 0302无名指
    2016-07-29 04:28:24

    在4-5小节中,在编写queryByIdWithSecKill的SQL语句时,老师有说过的,就是通过连接查询,带回seckill表的列值,这些列值通过“别名”的技巧,如 s.name "seckill.name" ,这样写,当数据库返回name字段的值时,MyBatis会解析你写的别名,把这个返回值set到SuccessKilled里的SecKill对象的name属性值,这个过程是MyBatis处理的,对我们使用者来说透明,底层利用的技术应该是Java的反射。