我使用hibernate来执行我的查询,在管理面板中我得到了正确的结果,但在hibernate中使用时它没有给出任何结果。
道层-
@Query("select new com.eventila.pms.entity.ReferenceLead(projectId,count(lm)) from LeadMaster lm where lm.vendorId= ?1 and lm.source = 'share' group by lm.projectId")
List<ReferenceLead> getReferenceByUser(String userId);
波乔-
@lombok.Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReferenceLead {
String projectId;
Long referenceLead;
Long count;
protected ReferenceLead(){}
public ReferenceLead(String projectId,Long count) {
this.projectId=projectId;
this.count=count;
}
}
执行此操作后,我得到一个空列表。请帮帮我。
2条答案
按热度按时间lb3vh1jj1#
“source”是sql中的关键字。
它是用于合并的关键字。i、 e.当源不匹配时。
单词matched也表现出同样的行为,它在编辑器中以灰色突出显示。
但这两个关键字都不是保留关键字,因此如果用作标识符,则不需要对它们进行分隔(除非您发现突出显示的语法会分散您的注意力)。
dxpyg8gm2#
在select查询中,返回字段而不调用新构造函数:
hibernate将使用这些字段示例化对象。另外,将@entity注解添加到referencelead类中。