mysql - 我不知道如何在hibernate中将sql查询转换为criteriabuilder?
问题描述
我需要一个总预算值。我可以从sql查询中得到答案,但问题是如何将sql查询转换为hibernate中的criteriaBuilder。在sql查询下面:
SELECT SUM(ab.daily_budget) as todayBudgetTar FROM api_budget ab INNER JOIN api_ad_groups ad on ad.ad_group_id= ab.adgroup_id INNER JOIN api_campaigns c on c.campaign_id =ad.campaign_id INNER JOIN api_user_account ac on ac.user_id=ad.user_id WHERE ad .user_id = 234 AND ad.status=0 AND c.status=1 按“todayBudgetTar”分组
如果有人知道请帮助我。
解决方案
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object[]> query = criteriaBuilder.createQuery(Object[].class);
Root<ApiBudget> budget = query.from(ApiBudget.class);
Root<ApiAdGroups> adGroups = query.from(ApiAdGroups.class);
Root<ApiCampaigns> campaigns = query.from(ApiCampaigns.class);
Root<ApiUserAccount> userAccount = query.from(ApiUserAccount.class);
//this one is on your entity field name
query.select(criteriaBuilder.sum(budget.get("dailyBudget"));
List<Predicate> predicates = new ArrayList<Predicate>();
predicates.add(
qb.equal(adGroups.get("adGroupId"), budget.get("adGroupId")));
predicates.add(
qb.equal(campaigns.get("campaignId "), adGroups.get("campaignId")));
predicates.add(
qb.equal(userAccount.get("userId"), adGroups.get("userId")));
predicates.add(
qb.equal(adGroups.get("userId"), 234));
predicates.add(
qb.equal(adGroups.get("status"), 0));
predicates.add(
qb.equal(campaigns.get("status"), 1));
query.where(predicates.toArray(new Predicate[]{}));
query.groupBy(budget.get("dailyBudget"));
TypedQuery<Object[]> typedQuery = entityManager.createQuery(query);
List<Object[]> resultList = typedQuery.getResultList();
嗨,我认为这应该工作
推荐阅读
- python-3.x - 如何检查嵌套列表是否存在,如果存在则不嵌套?
- r - 绘制每个 k-means 集群的热图?
- java - Java在Netbeans(Mac)上使用awt,JFrame和Thread(Runnable)绘制圆圈
- java - 使用 HttURLConnection 显示数据库中的数据
- html - 父div右下角的CSS三角形
- botframework - oauthCard 登录打开空窗口
- javascript - 尝试在非本地服务器上的 Firestore 中获取任何内容时,在没有 VM 的情况下部署到 AWS {错误:找不到模块“grpc”
- excel - 如何加快这个涉及格式化的 vba 代码?
- import - 使用 rollup-plugin-postcss 动态导入 scss
- css - 什么是 WordPress 样式/CSS 格式的最佳实践?