参看博文:http://blog.youkuaiyun.com/forandever/article/details/4520787
http://blog.youkuaiyun.com/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 对象了。
本文详细解析了在Hibernate框架下使用原生SQL查询时的注意事项,包括添加别名、返回多表字段、执行多表查询等技巧,并对比了createQuery与createSQLQuery的区别及应用场景,提供了将SQL查询结果转换为Bean对象的方法。
2923

被折叠的 条评论
为什么被折叠?



