所以问题陈述是我需要更新我的 tag_statistics 表。 Hibernate中所有这些连接都是相当新的,所以我试图尽可能多地提供信息来帮助你解决问题。
我的简单解决方法是使用rawQuery并快速更新我的MySQL后端,但我想知道如果使用Hibernate正确完成它将如何完成。我使用的是Hibernate 4.2.2(如果有必要,我不介意进一步升级)
谢谢!期待您的建议和解决方案。
所以这里是需要转换的查询:
SELECT t.id,SUM(ps.solved)as total_solved FROM
tags
as t,problem_tag_mapping
为ptm,problems_solved
为ps,其中t.id = ptm.tag_id和ptm.problem_id = ps.problem_id GROUP BY t.id";
然后我会使用此输出来更新 tag_statistics 表。
这就是数据库的样子:
标签
ID(BIGINT),
名称(VARCHAR)
问题
ID(BIGINT),
代码(VARCHAR)
problems_solved
problem_id(FK - bigint)
solve(int)
problem_tag_mapping
problem_id(FK - bigint)
tag_id(FK - bigint)
tag_statistics
tag_id(FK - bigint)
解决(INT)
这就是Hibernate实体的样子(只是有趣的东西 - 随意请求更多代码):
ProblemsEntity
@ManyToMany
@JoinTable(name,joinColumns,inverseJoinColumns)
TagsEntity@OneToOne(的mappedBy)
ProblemsSolvedEntity
TagsEntity
@ManyToMany(的mappedBy)
ProblemsEntity
ProblemsSolvedEntity
@OneToOne
@JoinColumn
ProblemsEntity