gpt4 book ai didi

java - 从表中选择所有行,但保持条件不变

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

嗨,由于 GroupBy,这段代码只给了我 1 行:

@Override
public Map<Integer, List<Cluster>> getPartnerIdClusterMap(boolean minorOnly, boolean foreignCountriesOnly) {
BooleanBuilder predicate = new BooleanBuilder();
if (minorOnly) {
predicate.and(qCluster.type.eq(ClusterType.MINOR));
}
if (foreignCountriesOnly) {
predicate.and(qPartner.country.code2.ne("nl"));
}

return from(qCluster)
.innerJoin(qCluster.partner, qPartner)
.where(predicate)
.where(qPartner.country.code2.ne("nl"))
.map(qPartner.id, GroupBy.list(qCluster));

}

这是我很高兴知道的:

我想选择簇表的所有行。但我想保持这些条件(innerJoin、where 子句等)完好无损。

所以我尝试过这个:

    return (Map<Integer, List<Cluster>>) from(qCluster)
.innerJoin(qCluster.partner, qPartner)
.where(predicate)
.where(qPartner.country.code2.ne("nl"));

说实话,Netbeans 为我将上述代码从 JPQLQuery 转换为 Map 类型。但不幸的是,该代码不起作用。因为我收到以下错误:

HTTP Status 500 - Request processing failed; nested exception is java.lang.ClassCastException: com.mysema.query.jpa.impl.JPAQuery cannot be cast to java.util.Map

这是错误的屏幕截图:

screenshot

有人可以帮助我吗?

最佳答案

如果您使合作伙伴和集群都具有一对多或多对多关系,这应该对您有用:

return from(qCluster)
.innerJoin(qCluster.partner, qPartner)
.where(predicate)
.where(qPartner.country.code2.ne("nl"))
.map(qPartner.id, qPartner.clusters);

我相信你有一个List<Cluster>Partner (属性名称为 cluster,如上所述)。否则,您的要求将无效。

关于java - 从表中选择所有行,但保持条件不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649936/

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