隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827240
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

          hibernate的DetachedCriteria查詢(多對多查詢問題)
          hibernate的DetachedCriteria查詢
          圖書和作者之間是多對多關系.現在知道作者.要查該作者所寫的圖書,條件應該怎樣寫啊
          我這樣寫是錯誤的
          detachedCriteria.add(Restrictions.eq("authors", authorSet));請問這句應該怎樣寫才對
          authorSet是一個Set類型的變量

          解決辦法
          detachedCriteria.createAlias("authors", "auths").add( Restrictions.in("auths.name", authorSet));

          不過出又出現了新的問題
          查得的結果以數組的方式返回,數組包含了Book和Author兩個對象了,能不能設置一下,讓它只返回Book對象就好了



          posted on 2008-01-12 10:11 Ke 閱讀(4702) 評論(3)  編輯  收藏 所屬分類: 問題區

          FeedBack:
          # re: hibernate的DetachedCriteria查詢(多對多查詢問題) 2009-02-12 23:21 信息
          我也碰到相同的問題啊  回復  更多評論
            
          # re: hibernate的DetachedCriteria查詢(多對多查詢問題) 2009-04-15 20:09 sheila
          我這里有一個比較笨的方法。

          多對多在數據庫當中還是會轉化為兩個多對一。在author和book之間再建一個表叫ownership。author和ownership是一對多,book和ownership也是一對多,在寫hibernate查詢的時候可以這樣寫

          Criteria ownershipCriteria = session.createCriteria(Ownership.class);
          Criteria bookCriteria = session.createCriteria(Book.class);
          Criteria authorCriteria = ownershipCriteria.createCriteria("author");
          authorCriteria.add(Expression.like(AuthorDAO.AUTHOR_NAME, "%"+authorName+"%"));

          List ownerships = ownershipCriteria.list();
          List results = new ArrayList(0);
          for(int i=0;i<ownerships.size();i++) {
          Book book = ((Ownership)ownerships.get(i)).getBook();
          Hibernate.initialize(book);
          results.add(book);
          }
          return results;

          這樣results里面就只有book了。  回復  更多評論
            
          # re: hibernate的DetachedCriteria查詢(多對多查詢問題) 2009-08-13 10:23 agu
          criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY); 加上這句就可以了   回復  更多評論
            
          主站蜘蛛池模板: 岢岚县| 浮梁县| 沁阳市| 荣昌县| 鹿邑县| 会泽县| 武清区| 武功县| 南安市| 西华县| 开江县| 棋牌| 浦县| 洪湖市| 志丹县| 绥芬河市| 淮南市| 长宁区| 鄂伦春自治旗| 华容县| 黎平县| 安阳县| 松溪县| 交口县| 东乌| 兴义市| 安图县| 新宾| 鄱阳县| 乌什县| 莲花县| 措美县| 金坛市| 彭山县| 和林格尔县| 绥中县| 桦川县| 上蔡县| 靖西县| 水城县| 珲春市|