问答详情
源自:4-5 基于myBatis实现DAO编程(下)

s.seckill_id "seckill.seckill_id" 这里为什么要在后面加“seckill.seckill_id",下面查询不是已经给出别名了吗

在inner join 那里已经将seckill取了别名叫s了,为什么这里还要写一遍,还有为什么要在success_killed里放seckill对象呢

提问者:慕斯卡1191317 2018-06-09 09:25

个回答

  • jy_li
    2018-06-19 17:05:11
    已采纳

    SuccessKilled里面有两种seckill_id,一种是SuccessKilled本身的对象的seckill_id,另一种是SuccessKilled里面定义的其他类(这里是Seckill)的seckill_id,若是使用非本身类的替换名,必须在后面加上这个"seckill.seckill_id",一种语法吧,我是这么理解的。

  • 赵志广
    2018-11-06 19:16:58

    我想问下可以实现 别名映射 一个集合属性怎么写呢

  • Benefit
    2018-10-08 02:31:49

    正因为在success_killed里放了seckill对象才有上述的映射时添加seckill.seckill_id

    至于为什么要在success_killed里放seckill对象呢,我现在的理解是:在执行execution里返回的对象SuccessKilled里有完整的数据:https://www.imooc.com/video/11737 08:47

  • Benefit
    2018-10-07 10:51:35

    没有认真听讲啊 lol,老师在说列别名的时候,说的是把表的列名映射为实体对象,由于使用了join语句,所以这里是把表的列名映射成了实体对象的属性,老师说是‘属性的属性’,实际想表达的是‘对象的属性’,对象的属性自然是seckill.seckill_id,具体要不要再加一个别名,可以测试下

  • 慕无忌8269732
    2018-06-14 15:44:34


    映射到SuccessKilled类的Seckill seckill属性