在spring boot应用程序中,我有一个elemententity:
....
@Entity
public class ElementEntity
{
@Id
int id;
Double quantity;
String form;
String color;
String type;
String description;
@ManyToOne
@JoinColumn(name = "form")
private FormEntity form;
}
我在这里有:
@Entity
public class FormEntity {
.....
@OneToMany
@JoinColumn(name = "links")
private List<LinksEntity> links;
}
我想使用hql生成一个查询,将数量字段的值相加,按颜色分组,并返回 [{qty, color, links}]
我做了hql查询:
@Repository
public interface ElementRepository extends JpaRepository ... {
@Query("SELECT sum(quantity) as qty, color, form.links FROM ElementEntity" +
"WHERE type= ?1" +
"GROUP BY color")
List<Object[]> findAllBy ElementAndGroup(String type);
这给 Validation failed for query for method public abstract findAllByElementAndGroup
这是因为 form.links
这是一个 @OneToMany
关系。
如何修复此查询以便按颜色对数据分组并返回表单链接?
1条答案
按热度按时间pqwbnv8z1#
问题更新后更新
你可以用
join
在您的查询中。别忘了将列添加到group by
:在上面的代码中,我假设formentity中id字段的名称是
id
. 改变form.id
如果假设不正确。讨论后更新: