hibernate 原生sql 命名查詢

2021-08-25 23:56:13 字數 1126 閱讀 2704

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