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

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

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

    posts - 15,  comments - 4,  trackbacks - 0
    -------------------------------------------------------------------
    @NotFound(action=NotFoundAction.IGNORE)

    使用hibernate
    注解配置實體類的關聯(lián)關系,在many-to-one,one-to-one關聯(lián)中,一邊引用自另一邊的屬性,如果屬性值為某某的數(shù)據(jù)在數(shù)據(jù)庫不存在了,hibernate默認會拋出異常。解決此問題,加上如下注解就可以了:
    @NotFound(action=NotFoundAction.IGNORE),意思是找不到引用的外鍵數(shù)據(jù)時忽略,NotFound默認是exception

    -------------------------------------------------------------------
    cascade = CascadeType.REFRESH,cascade=CascadeType.ALL

    cascade表示級聯(lián)操作  


       CascadeType.MERGE級聯(lián)更新:若items屬性修改了那么order對象保存時同時修改items里的對象。對應EntityManager的merge方法

     
       CascadeType.PERSIST級聯(lián)刷新:獲取order對象里也同時也重新獲取最新的items時的對象。對應EntityManager的refresh(object)方法有效。即會重新查詢數(shù)據(jù)庫里的最新數(shù)據(jù)  
      

      CascadeType.REFRESH級聯(lián)保存:對order對象保存時也對items里的對象也會保存。對應EntityManager的presist方法  
      

      CascadeType.REMOVE級聯(lián)刪除:對order對象刪除也對items里的對象也會刪除。對應EntityManager的remove方法  

    CascadeType.PERSIST只有A類新增時,會級聯(lián)B對象新增。若B對象在數(shù)據(jù)庫存(跟新)在則拋異常(讓B變?yōu)槌志脩B(tài))

    CascadeType.MERGE指A類新增或者變化,會級聯(lián)B對象(新增或者變化)

    CascadeType.REMOVE只有A類刪除時,會級聯(lián)刪除B類;

    CascadeType.ALL包含所有;

    CascadeType.REFRESH沒用過。

    綜上:大多數(shù)情況用CascadeType.MERGE就能達到級聯(lián)跟新又不報錯,用CascadeType.ALL時要斟酌下CascadeType.REMOVE

    @Fetch:

    定義了加載關聯(lián)關系的獲取策略. FetchMode 可以是

    SELECT (在需要加載關聯(lián)的時候觸發(fā)select操作),     SUBSELECT(只對集合有效,使用了子查詢策略,詳情參考Hibernate參考文檔)

    JOIN (在加載主實體(owner entity)的時候使用SQL JOIN來加載關聯(lián)關系).

    JOIN 將覆寫任何延遲屬性 (通過 JOIN策略加載的關聯(lián)將不再具有延遲性).



    -------------------------------------------------------------------
    fetch=FetchType.LAZY
    Hibernate的數(shù)據(jù)加載方式:
    1.即時加載 immediately loading

           實體加載完成后,立即加載其關聯(lián)的數(shù)據(jù)。
    2.延遲加載lazy loading

           實體相關聯(lián)的數(shù)據(jù)在第一次訪問時再進行讀取。
    3.預先加載 eager loading

            與immediately loading類似,但實體和相關聯(lián)的數(shù)據(jù)是通過一條sql同時讀取。
    4.批量加載 batch loading
            ?



    ------------------------------------------------------------------
    EntityManager 的API
    下面是EntityManager的一些主要的接口方法:
    void persist(Object entity)
          通過調用EntityManager的persist()方法,新實體實例將轉換為受控狀態(tài)。這意謂著當persist()方法所在的事務提交時,實體的數(shù)據(jù)將保存到數(shù)據(jù)庫中。如果實體已經(jīng)被持久化,那么調用persist()操作不會發(fā)生任何事情。如果對一個已經(jīng)刪除的實體調用persist()操作,刪除態(tài)的實體又轉變?yōu)槭芸貞B(tài)。如果對游離狀的實體執(zhí)行persist()操作,將拋出IllegalArgumentException。 在一個實體上調用persist()操作,將廣播到和實體關聯(lián)的實體上,執(zhí)行相應的級聯(lián)持久化操作;

    void remove(Object entity)
          通過調用remove()方法刪除一個受控的實體。如果實體聲明為級聯(lián)刪除(cascade=REMOVE 或者cascade=ALL ),被關聯(lián)的實體也會被刪除。在一個新建狀態(tài)的實體上調用remove()操作,將被忽略。如果在游離實體上調用remove()操作,將拋出IllegalArgumentException,相關的事務將回滾。如果在已經(jīng)刪除的實體上執(zhí)行remove()操作,也會被忽略;

    void flush()
          將受控態(tài)的實體數(shù)據(jù)同步到數(shù)據(jù)庫中;

    T merge(T entity)
          將一個游離態(tài)的實體持久化到數(shù)據(jù)庫中,并轉換為受控態(tài)的實體;

    T find(Class entityClass, Object primaryKey)
          以主鍵查詢實體對象,entityClass是實體的類,primaryKey是主鍵值,如以下的代碼查詢Topic實體: Topic t = em.find(Topic.class,1); Query createQuery(String qlString) 根據(jù)JPA的查詢語句創(chuàng)建一個查詢對象Query,如下面的代碼:
    Query q= em.createQuery(""SELECT t FROM Topic t WHERE t.topicTitle LIKE :topicTitle")"); Query createNativeQuery(String sqlString)
    使用本地數(shù)據(jù)庫的SQL語句創(chuàng)建一個Query對象,Query通過getResultList()方法執(zhí)行查詢后,返回一個List結果集,每一行數(shù)據(jù)對應一個Vector。
    使用本地數(shù)據(jù)庫的SQL語句創(chuàng)建一個Query對象,Query通過getResultList()方法執(zhí)行查詢后,返回一個List結果集,每一行數(shù)據(jù)對應一個Vector。
    看來要學習的東東還有好多啊~~努力吧!


     

    posted on 2013-03-05 11:51 老天 閱讀(3893) 評論(1)  編輯  收藏


    FeedBack:
    # re: JPA注解記錄[未登錄]
    2014-02-24 18:08 | rick
    內容寫錯了吧,是不是再整理一下比較好,會誤導的。  回復  更多評論
      

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


    網(wǎng)站導航:
     
    <2014年2月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    2324252627281
    2345678

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产拍拍拍无码视频免费| 国产羞羞的视频在线观看免费| 久久久久久精品免费免费自慰| 亚洲欧洲国产精品你懂的| 日韩电影免费在线观看网站| 亚洲精品和日本精品| 一级中文字幕免费乱码专区| 亚洲日韩国产精品乱| 精品熟女少妇aⅴ免费久久 | 日本在线高清免费爱做网站| 亚洲第一区视频在线观看| 在线视频精品免费| 在线观看亚洲AV日韩A∨| 成在线人永久免费视频播放| 国产天堂亚洲国产碰碰| 中文字幕中韩乱码亚洲大片| 99久久精品毛片免费播放| 亚洲成AV人片天堂网无码| 18成禁人视频免费网站| 亚洲激情视频图片| 国产午夜免费福利红片| 免费a级毛片无码a∨免费软件| 激情内射亚洲一区二区三区| 成年人网站在线免费观看| 国产亚洲一卡2卡3卡4卡新区| 亚洲精品黄色视频在线观看免费资源 | 自拍日韩亚洲一区在线| 成人免费视频国产| a级毛片100部免费观看| 亚洲免费视频播放| 亚洲?V无码成人精品区日韩| 波多野结衣免费一区视频| 中国china体内裑精亚洲日本| 亚洲精品456播放| 日韩免费在线视频| 亚洲精品无码专区在线| 亚洲综合伊人久久大杳蕉| 野花高清在线观看免费3中文| 人人爽人人爽人人片av免费 | 亚洲视频免费在线播放| 特级毛片A级毛片100免费播放|