atitit. orm框架的hibernate 使用SQLQuery createSQLQuery addEntity
atitit.?orm框架的hibernate?使用SQLQuery?createSQLQuery?addEntity
1.?addEntity
對原生SQL查詢執行的控制是通過SQLQuery接口進行的,通過執行Session.createSQLQuery()獲取這個接口。最簡單的情況下,我們可以采用以下形式:
List?cats?=?sess.createSQLQuery(?"?select?*?from?cats?"?).addEntity(Cat.?class?).list();?
作者::?老哇的爪子?Attilax?艾龍,??EMAIL:1466519819@qq.com
轉載請注明來源:?http://blog.csdn.net/attilax
?
2.?addEntity??占位符?別名
這里,結果集字段名被假設為與映射文件中指明的字段名相同。對于連接了多個表的查詢,這就可能造成問題,因為可能在多個表中出現同樣名字的字段。下面的方法就可以避免字段名重復的問題:
List?cats?=?sess.createSQLQuery(?"?select?{cat.*}?from?cats?cat?"?).addEntity(?"?cat?"?,?Cat.?class?).list();?
這個查詢指定了:
SQL查詢語句,它帶一個占位符,可以讓Hibernate使用字段的別名.
查詢返回的實體,和它的SQL表的別名.
addEntity()方法將SQL表的別名和實體類聯系起來,并且確定查詢結果集的形態。
?
3.?addJoin()方法可以被用于載入其他的實體和集合的關聯.
List?cats?=?sess.createSQLQuery(
"?select?{cat.*},?{kitten.*}?from?cats?cat,?cats?kitten?where?kitten.mother?=?cat.id?"?)
.addEntity(?"?cat?"?,?Cat.?class?)
.addJoin(?"?kitten?"?,?"?cat.kittens?"?)
.list();?
?
?
4.?參考
hibernate里createSQLQuery的addEntity()和setResultTransformer()方法?-?正走向大牛的菜鳥?-?ITeye技術網站.htm
?
轉載于:https://www.cnblogs.com/attilax/p/5963736.html
總結
以上是生活随笔為你收集整理的atitit. orm框架的hibernate 使用SQLQuery createSQLQuery addEntity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据实训项目
- 下一篇: 数学图形(1.33) 棕子曲线