sql-query中必須把錶所有的列寫全才可以,否則會出現『列名無效』的錯誤 ,除非你使用return-scalar來設定字段型別。
使用return-property來明確地指定字段/別名,但是列字段要寫全,
兩種配置方式:
select from blog t where t.content like :contentpattern
select t.id "id", t.title "title", t.content "content", t.blog_author_id "blogauthorid" from blog t where t.content like :contentpattern
使用return-scalar來設定字段型別,查詢部分字段
select t.id "id", t.title "title", t.content "content" from blog t where t.content like :contentpattern
查詢部分欄位時,返回的結果型別為list型別,而上兩種方式的配置中因為將字段對映到了指定bean中的屬性,返回的結果為list
以下是查詢部分欄位的測試片段:
//獲取部分欄位的內容, 這時query.list()列表型別為list。 query query = session.getnamedquery("selectblogsbycontent"); query.setstring("contentpattern", "%h%"); listblogs = query.list(); for(object item : blogs)
還是這樣好,使用setresulttransformer方法將查詢結果轉換為vo,而查詢部分欄位的配置不用變,依然為以上配置
測試**:
query query = session.getnamedquery("selectblogsbycontent") .setresulttransformer(transformers.aliastobean(blog.class)); query.setstring("contentpattern", "%h%"); listblogs = query.list(); system.out.println(blogs);
Hibernate 原生SQL查詢
hql儘管容易使用,但是在一些複雜的資料操作上功能有限。特別是在實現複雜的報表統計與計算,以及多表連線查詢上往往無能為力,這時可以使用sql native sql 實現hql無法完成的任務。1 使用sql查詢 使用sql查詢可以通過兩種方式來實現 1 利用hibernate提供的sqlquery物件...
hibernate 原生sql的使用
hql儘管容易使用,但是在一些複雜的資料操作上功能有限。特別是在實現複雜的報表統計與計算,以及多表連線查詢上往往無能為力,這時可以使用sql native sql 實現hql無法完成的任務。1 使用sql查詢 使用sql查詢可以通過兩種方式來實現 1 利用hibernate提供的sqlquery物件...
Hibernate使用原生SQL適應複雜資料查詢
hibernate使用原生sql適應複雜資料查詢 hql儘管容易使用,但是在一些複雜的資料操作上功能有限。特別是在實現複雜的報表統計與計算,以及多表連線查詢上往往無能為力,這時可以使用sql native sql 實現hql無法完成的任務。1 使用sql查詢 使用sql查詢可以通過兩種方式來實現 1...