posts - 35, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          關于hibernate的left join

          Posted on 2012-09-18 13:47 timelyxyz 閱讀(222) 評論(0)  編輯  收藏

          hibernate默認的,以及網絡上的主流支持left join的表關系是one-to-many的,可以使用left join fetch(需要配置lazy="true" fetch="select"),也可以使用Criteria或者CriteriaQuery(link1 link2)來進行查詢。

           

          對于many-to-one,首先我們先建兩個model:

           

          @Entity
          public class ClassOne {
          public String id;
          public boolean isDeleted;  
          }

          @Entity

          public class ClassTwo {
          public String id; 
          @ManyToOne
          public ClassOne classOne; // 父表
          public boolean isDeleted;  
          }

           目前有兩個需求:

           

          (1)select a.id,b.id from ClassTwo as b left join b.classOne as a;【正確,獲取到了所有ClassOne表的數據項】

          (2)select a.id,count(b.id) from ClassTwo as b left join b.classOne as a where a.isDeleted=false and b.isDeleted=false group by a.id;【count結果中把0的濾去了,沒達到我的需求】 

          對于第二種,目前我還沒找到具體的解決方法,仍需研究。 

           


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


          網站導航:
           
          主站蜘蛛池模板: 宁海县| 宽城| 额尔古纳市| 南昌市| 鲁山县| 清水河县| 寿阳县| 通山县| 吴忠市| 隆尧县| 丰城市| 垫江县| 旬阳县| 乃东县| 靖江市| 泉州市| 寻乌县| 牙克石市| 苏尼特右旗| 肥城市| 星子县| 峨山| 申扎县| 中方县| 同江市| 唐山市| 雷山县| 明水县| 周至县| 漳州市| 措勤县| 无锡市| 钟祥市| 三原县| 滨海县| 清流县| 莲花县| 繁昌县| 五大连池市| 北川| 收藏|