<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 36,comments - 31,trackbacks - 0

    Hibernate3.0 采用新的基于ANTLR的HQL/SQL查詢翻譯器,在Hibernate的配置文件中,hibernate.query.factory_class屬性用來選擇查詢翻譯器。
    (1)選擇Hibernate3.0的查詢翻譯器:
    hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
    (2)選擇Hibernate2.1的查詢翻譯器
    hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    為了使用3.0的批量更新和刪除功能,只能選擇(1)否則不能解釋批量更新的語句。選擇(2)但沒法解釋批量更新語句了。

    大批量更新/刪除(Bulk update/delete)

    就像已經討論的那樣,自動和透明的 對象/關系 映射(object/relational mapping)關注于管理對象的狀態。 這就意味著對象的狀態存在于內存,因此直接更新或者刪除 (使用 SQL 語句 UPDATE 和 DELETE) 數據庫中的數據將不會影響內存中的對象狀態和對象數據。 不過,Hibernate提供通過Hibernate查詢語言來執行大批 量SQL風格的(UPDATE)和(DELETE) 語句的方法。

    UPDATE 和 DELETE語句的語法為: ( UPDATE | DELETE ) FROM? ClassName (WHERE WHERE_CONDITIONS)?。 有幾點說明:

    在FROM子句(from-clause)中,FROM關鍵字是可選的

    在FROM子句(from-clause)中只能有一個類名,并且它不能有別名

    不能在大批量HQL語句中使用連接(顯式或者隱式的都不行)。不過在WHERE子句中可以使用子查詢。

    整個WHERE子句是可選的。

    舉個例子,使用Query.executeUpdate()方法執行一個HQL UPDATE語句:??

    Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); String hqlUpdate = "update Customer set name = :newName where name = :oldName"; int updatedEntities = s.createQuery( hqlUpdate ) .setString( "newName", newName ) .setString( "oldName", oldName ) .executeUpdate(); tx.commit(); session.close();
    執行一個HQL DELETE,同樣使用 Query.executeUpdate() 方法 (此方法是為 那些熟悉JDBC PreparedStatement.executeUpdate() 的人們而設定的)

    Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); String hqlDelete = "delete Customer where name = :oldName"; int deletedEntities = s.createQuery( hqlDelete ) .setString( "oldName", oldName ) .executeUpdate(); tx.commit(); session.close();
    由Query.executeUpdate()方法返回的整型值表明了受此操作影響的記錄數量。 注意這個數值可能與數據庫中被(最后一條SQL語句)影響了的“行”數有關,也可能沒有。一個大批量HQL操作可能導致多條實際的SQL語句被執行, 舉個例子,對joined-subclass映射方式的類進行的此類操作。這個返回值代表了實際被語句影響了的記錄數量。在那個joined-subclass的例子中, 對一個子類的刪除實際上可能不僅僅會刪除子類映射到的表而且會影響“根”表,還有可能影響與之有繼承關系的joined-subclass映射方式的子類的表。

    ?

    posted on 2006-08-08 18:20 心隨我動 閱讀(538) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    網站流量統計:
    澳大利亞 ABC 在線英語廣播電臺
    主站蜘蛛池模板: 曰批免费视频播放在线看片二 | 男人的天堂亚洲一区二区三区 | 亚洲国产成人精品91久久久 | 亚洲人成网站在线播放2019| 亚洲精品成人无码中文毛片不卡| 免费看男女下面日出水视频| 午夜宅男在线永久免费观看网| 午夜精品一区二区三区免费视频| 免费人成视频在线播放| 亚洲国产精品嫩草影院| 亚洲乱码日产精品BD在线观看| 亚洲视频免费在线观看| 国产亚洲日韩在线三区| 亚洲综合久久夜AV | 免费在线看片网站| 免费看男女下面日出水视频| 日本不卡视频免费| 成人在线免费观看| 成人免费午夜在线观看| 99久久99这里只有免费费精品 | 亚洲狠狠ady亚洲精品大秀| 亚洲AV无码不卡在线播放| 亚洲欧洲国产精品香蕉网| 亚洲伊人成无码综合网| 久久久久亚洲av成人无码电影| 亚洲国产精品一区二区第四页 | 亚洲Av永久无码精品黑人| 亚洲大成色www永久网址| www.亚洲成在线| 亚洲不卡视频在线观看| 久久精品国产亚洲AV蜜臀色欲| 久久久久久亚洲精品影院| 亚洲va久久久久| jizzjizz亚洲日本少妇| 国产亚洲日韩在线a不卡| 无码色偷偷亚洲国内自拍| 四虎影视在线看免费观看| 亚洲国产免费综合| 免费精品一区二区三区第35| 99精品视频在线观看免费播放| 曰批全过程免费视频播放网站|