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(); post

做者:: 老哇的爪子 Attilax 艾龍,  EMAIL:1466519819@qq.comspa

轉載請註明來源: http://blog.csdn.net/attilax.net

 

2. addEntity  佔位符 別名

這裏,結果集字段名被若是爲與映射文件裏指明的字段名相同。對於鏈接了多個表的查詢。這就可能形成問題,因爲可能在多個表中出現相同名字的字段。hibernate

如下的方法就可以避免字段名反覆的問題:orm

List cats = sess.createSQLQuery( " select {cat.*} from cats cat " ).addEntity( " cat " , Cat. class ).list(); htm

這個查詢指定了:blog

SQL查詢語句。它帶一個佔位符,可以讓Hibernate使用字段的別名.接口

查詢返回的實體,和它的SQL表的別名.it

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. 參考

hibernatecreateSQLQueryaddEntity()setResultTransformer()方法 正走向大牛的菜鳥 - ITeye技術站點.htm

相關文章
相關標籤/搜索