参看博文:/forandever/article/details/4520787
/yangfanend/article/details/7165086
总结:
1、使用Hibernate 原生SQL查询,当多个表的关联时,或者返回多个表的字段时,最好要添加别名,并注意添加的别名的写法;
3、当多个表格关联使用原生SQL查询时,记得对每个要返回的实体 addEntity。
4、如果要执行的sql语句是多表查询,并且是返回一个对象。这个对象是配置hibernate映射的。
执行addEntity, 原生sql必须用select distinct main.*, task.*,link.* from complaintmain main, complainttask task, complaintlink link的形式,或者select {main.*},{task.*} from complaintmain main, complainttask task, complaintlink link。
返回几个表.*,添加几个与之对应的对象实体。
1.如果查询的结果task.*和对象字段名称没有一一对应,则需要需要起别名,然后通过addEntity("别名",对象实体.class),通过addEntity把要返回的数据强转为配置hibernate映射的对象实体。
main.id as {main.id},这是为了如果数据库字段名和complaintmain 模型中不一样所以都as取了个别名,那么这样就能返回complaintmain 对象了。