gpt4 book ai didi

java - 如何查询实体并将计数聚合到值对象上

转载 作者:行者123 更新时间:2023-12-02 09:49:05 26 4
gpt4 key购买 nike

我正在尝试在 JPA 中创建一个查询,该查询将获取一个 id 并查找给定 id 的多个列的计数。

例如,我有一份工作,该资源可以添加属性。我需要找到每个属性的计数并映射到给定作业 ID 的新 VO。

场景。

Job A has
1 skillsType assigned

Job B has
2 skillsType assigned

我的数据库结构保存了jobIdskillTypeskillTypeId。事实上,这将为我提供作业 B 的 id 的 2 个值,但是我需要它为一行并按给定类型给出技能类型的计数。

我尝试在存储库上创建一个 VO 以将值映射到其上,但它不起作用。

我的 VO 具有以下值:jobIdsoftSkillsCounttechnicalSkillsCount

例如,工作 B 是jobBIdValue, 1, 1 而不是jobBIdValue、softSkill、skillIdSoftjobBIdValue、technicalSkill、skillIdTechnical

到目前为止我拥有的代码是 NamedQuery = 从 JobView 中选择新的 packagename.myJobViewVO(jobId, countOfSoftSkills,countOfTechnicalSkils),其中 jobId = 123

最佳答案

可能不是最好的解决方案,但以下查询可以完成这项工作

select new packagename.myJobViewVO(jobId,
sum(case when skillType = 'soft' then 1 else 0 end ) as countOfSoftSkills,
sum(case when skillType = 'hard' then 1 else 0 end ) as countOfTechnicalSkils
) from JobView where jobId = 123 group by jobId

关于java - 如何查询实体并将计数聚合到值对象上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56445994/

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