gpt4 book ai didi

java - 使用与其他表不同的计数进行过滤

转载 作者:太空宇宙 更新时间:2023-11-04 13:33:08 24 4
gpt4 key购买 nike

我有两个表如下:
2 tables with a relation one to many
我试图找到每根至少有 2 种类型引脚的电线,也可以有很多相同类型的引脚分配给 1 根电线。
我的 sql 逻辑如下:

select * from wire x where (select count(*) from pin y where x.id = y.wireId) = 2;   

我已经尝试过一些事情,最后一个是:

DetachedCriteria cav = criteriaQuery.createCriteria("pins");   
cav.setProjection(Projections.countDistinct("type")).setResultTransformer(Criteria.ROOT_ENTITY);
criteriaQuery.add(Subqueries.eq(Integer.parseInt(value), cav));

这导致 hibernate 内的 getTypedValues 出现空指针异常。

任何帮助将不胜感激,即使只是更多资源来更好地学习 hibernate

最佳答案

可能不是最好的答案,但现在我通过这样做解决了这个问题:

    DetachedCriteria a = DetachedCriteria.forClass(Pin.class);
String groupBy = "wireId having count(DISTINCT type) >=2";
String[] alias = new String[1];
alias[0] = "wireId ";
Type[] types = new Type[1];
types[0] = Hibernate.STRING;

a.setProjection(Projections.sqlGroupProjection("wireId", groupBy, alias, types));
criteriaQuery.add(Subqueries.propertyIn("wireId", a));

关于java - 使用与其他表不同的计数进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com