カラーテーブルと関係のある製品テーブルがあります
製品には多くの色があります... 例: 製品 A: 赤、緑、青、黄。
少なくとも RED と GREEN を含む製品を見つけたいです。
DetachedCriteria colorCrit = DetachedCriteria.forClass(Color.class);
ProjectionList colorList = new Projections.projectionList();
colorList.add(Projections.groupProperty("productID"));
colorList.add(Projections.rowCount(),"abc");
colorCrit.setProjection(colorList);
colorCrit.add(Restrictions.eq("color", "GREEN")
colorCrit.add(Restrictions.eq("color", "RED")
colorCrit.add(Restrictions.eq("abc",2);
Criteria productCrit = new Criteria(Product.class);
productCrit.add(Suqueries.in("id",colorCrit));
list<Product> productList = productCrit.list();
上記のコードを使用していますが、 on でグループを達成できませんProjections.rowCount()
。
私は .as を試しましたが、分離された基準を不適切な Suqueries にする追加の列が発生します。(値オラクルの例外が多すぎます)
colorCrit.add(Restrictions.eq(Projections.rowCount(),2);
> 行数がプロパティではないため機能しません = x
select * from product pd where pd.id = (select cr.productID from color cr where cr.color="RED" or cr.color="GREEN" group by cr.productID having rowcount=2
上記は適切な SQL クエリである必要があります。
解決策はありますか?