从hibernate中的@query获取空结果

fumotvh3  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(385)

我使用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;
    }

}

执行此操作后,我得到一个空列表。请帮帮我。

lb3vh1jj

lb3vh1jj1#

“source”是sql中的关键字。
它是用于合并的关键字。i、 e.当源不匹配时。
单词matched也表现出同样的行为,它在编辑器中以灰色突出显示。
但这两个关键字都不是保留关键字,因此如果用作标识符,则不需要对它们进行分隔(除非您发现突出显示的语法会分散您的注意力)。

dxpyg8gm

dxpyg8gm2#

在select查询中,返回字段而不调用新构造函数:

@Query("select projectId, count(lm) from LeadMaster lm where lm.vendorId = ?1 and lm.source = 'share' group by lm.projectId")
List<ReferenceLead> getReferenceByUser(String userId);

hibernate将使用这些字段示例化对象。另外,将@entity注解添加到referencelead类中。

相关问题