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

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827222
          • 排名 - 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); 加上這句就可以了   回復  更多評論
            
          主站蜘蛛池模板: 漳浦县| 南涧| 兰考县| 法库县| 永昌县| 定南县| 积石山| 获嘉县| 青州市| 会同县| 禹州市| 福州市| 高密市| 靖宇县| 栾城县| 辉南县| 泰安市| 正阳县| 荣成市| 平泉县| 扎赉特旗| 东台市| 石河子市| 昌图县| 县级市| 新竹县| 抚州市| 罗城| 潮州市| 五寨县| 镇原县| 涡阳县| 洛川县| 张北县| 白城市| 丰县| 昌乐县| 汶上县| 桃源县| 湖北省| 南宁市|