criteriaquery multiselect与规范一起使用时不起作用

mqxuamgl  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(305)

我使用spring引导规范来查询数据库并返回结果。我查询的表包含很多列,我只想检索特定的列。这是我的密码-

public static Specification<Partner> filter(SearchCriteria criteria) {
    return (root, cq, cb) -> {
      String key = criteria.getKey();
      String value = criteria.getValue();
      cq.distinct();
      cq.multiselect(root.get("id").alias("Partner ID"), root.get("name").alias("Partner Name"),
          root.get("shortDescription").alias("Short Desc"), root.get("logoUrl").alias("Logo Url"),
          root.get("accentColor").alias("Accent Color"));
      return cb.equal(root.get(ID), value);
}

我还在实体中添加了一个构造函数

public Partner(Long id, String name, String shortDescription, String logoUrl, String accentColor) {
    this.id = id;
    this.name = name;
    this.shortDescription = shortDescription;
    this.logoUrl = logoUrl;
    this.accentColor = accentColor;
  }

但是,这不起作用,它检索所有列。我在控制台上也没有看到错误。我有什么遗漏吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题