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

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

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


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

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

      CascadeType.REFRESH級(jí)聯(lián)保存:對(duì)order對(duì)象保存時(shí)也對(duì)items里的對(duì)象也會(huì)保存。對(duì)應(yīng)EntityManager的presist方法  
      

      CascadeType.REMOVE級(jí)聯(lián)刪除:對(duì)order對(duì)象刪除也對(duì)items里的對(duì)象也會(huì)刪除。對(duì)應(yīng)EntityManager的remove方法  

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

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

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

    CascadeType.ALL包含所有;

    CascadeType.REFRESH沒用過。

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

    @Fetch:

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

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

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

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



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

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

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

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



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

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

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

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

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


     

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


    FeedBack:
    # re: JPA注解記錄[未登錄]
    2014-02-24 18:08 | rick
    內(nèi)容寫錯(cuò)了吧,是不是再整理一下比較好,會(huì)誤導(dǎo)的。  回復(fù)  更多評(píng)論
      

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


    網(wǎng)站導(dǎo)航:
     
    <2013年3月>
    242526272812
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产精品亚洲视频| 国产不卡免费视频| 亚洲精品无码久久久影院相关影片| 亚洲欧美中文日韩视频| 毛片a级毛片免费播放100| 亚洲一级视频在线观看| 91免费国产自产地址入| 亚洲国产日韩在线成人蜜芽| 国产片AV片永久免费观看 | 亚洲av无码不卡| 久久狠狠躁免费观看2020| 亚洲AV无码专区在线播放中文 | 国产亚洲女在线线精品| 日本中文一区二区三区亚洲| 一区二区三区免费在线视频 | 亚洲av乱码一区二区三区| 日韩毛片免费无码无毒视频观看| 亚洲免费福利在线视频| 免费萌白酱国产一区二区| 国产精品免费久久久久影院| 久久精品国产亚洲一区二区| 51在线视频免费观看视频| 国产亚洲sss在线播放| 日本高清色本免费现在观看| 免费夜色污私人影院网站电影| 亚洲宅男天堂在线观看无病毒| 精品国产麻豆免费人成网站| 亚洲视频免费在线看| 在线观看免费污视频| 国产精品免费久久久久影院| 亚洲高清不卡视频| 成人永久免费高清| 黄网站免费在线观看| 精品国产日韩久久亚洲| 爱情岛论坛网亚洲品质自拍| 亚洲视频免费在线观看| 在线亚洲高清揄拍自拍一品区| 亚洲午夜av影院| 国产成人精品免费视频大全麻豆| 国产成人人综合亚洲欧美丁香花| 亚洲精品乱码久久久久久按摩 |