hibernate中實現運用分級查詢 2

2021-06-21 11:52:21 字數 732 閱讀 2557



如果使用原生sql語句進行query查詢時,hibernate是不會自動把結果包裝成實體的。所以要手動呼叫addentity(class class)等一系列方法。

如session.createsqlquery(sql).addentity(class class);注意hibernate3.0.5不支援,單個引數的addentity方法

另外,hibernate3.2可以對原生sql 查詢使用resulttransformer。這會返回不受hibernate管理的實體。

session.createsqlquery("select name, birthdate from cats")

.setresulttransformer(transformers.aliastobean(catdto.class))

或setresulttransformer(newaliastobeanresulttransformer(catdto.class))

上面的查詢將會返回catdto的列表,它將被例項化並且將name和birthday的值注射入對應的屬性或者字段。

但必須注意,對每乙個列都必須addscalar("列名")

既然如此,

那麼setresulttransformer與addentity的區別是什麼呢?乙個區別是前者支援查任意的列,後者必須用select * from users的形式或select , from a,b where ....。

hibernate 運用 中的 細節分析

看如下這段 出自 hibernateutils 類中 public static final threadlocal session new threadlocal 為啥要這樣用?public static session currentsession throws hibernateexcepti...

Hibernate實現分頁

hibernate提供了乙個支援跨系統的分頁機制,這樣無論底層是什麼樣的資料庫都能用統一的介面進行分頁操作。不用寫oracle專用的3層巢狀是一件多麼幸運的事啊 舉個例子 比如 分頁顯示方法 返回乙個從第n條開始到第m條結束的記錄集合 即每頁顯示m條記錄 param pagehql 動態hql語句 ...

第乙個HIbernate簡單運用

環境 jdk6.0 mysql5.0 hibrenate3.6 1 搭建環境 匯入 hibernate home lib required bytecode jpa 下的 所有jar包 2 編寫hibernate.cfg.xml 檔案 com.mysql.jdbc.driver jdbc mysql...