參看博文:http://blog.csdn.net/forandever/article/details/4520787
http://blog.csdn.net/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 對象了。