当前位置: 首页 > 知识库问答 >
问题:

带有投影的Spring JPA本地查询提供“ConverterNotFoundException”

夏晋
2023-03-14
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.example.IdsOnly]
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@Entity
@Table(name = "TestTable")
public class TestTable {

    @Id
    @Basic(optional = false)
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "Id")
    private Integer id;
    @Column(name = "OtherId")
    private String otherId;
    @Column(name = "CreationDate")
    @Temporal(TemporalType.TIMESTAMP)
    private Date creationDate;
    @Column(name = "Type")
    private Integer type;
}
import lombok.Value;

@Value // This annotation fills in the "hashCode" and "equals" methods, plus the all-arguments constructor
public class IdsOnly {

    private final Integer id;
    private final String otherId;
}
public interface TestTableRepository extends JpaRepository<TestTable, Integer> {

    @Query(value = "select Id, OtherId from TestTable where CreationDate > ?1 and Type in (?2)", nativeQuery = true)
    public Collection<IdsOnly> findEntriesAfterDate(Date creationDate, List<Integer> types);
}
@Autowired
TestTableRepository ttRepo;
...
    Date theDate = ...
    List<Integer> theListOfTypes = ...
    ...
    Collection<IdsOnly> results = ttRepo.findEntriesAfterDate(theDate, theListOfTypes);  

共有1个答案

沈凡
2023-03-14

使用spring数据,您可以删除中间人员,并简单地定义

public interface IdsOnly {
  Integer getId();
  String getOtherId();
}

并使用本机查询,如;

@Query(value = "Id, OtherId from TestTable where CreationDate > ?1 and Type in (?2)", nativeQuery = true)
    public Collection<IdsOnly> findEntriesAfterDate(Date creationDate, List<Integer> types);

查看https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections

 类似资料:
  • 谢谢你的帮助。我真的不明白我做错了什么。

  • 我正在使用JPA投影,但当我的查询包含子查询时,它就失败了。例如: 下面是投影的界面: 和存储库: 关于如何使用JPA投影的子查询有什么想法吗? 谢谢。

  • 我有一个奇怪的问题,我不知道为什么会发生。我肯定我做错了什么,因为这是我第一次使用数据投影,而且我在使用DTOS时从来没有遇到过这样的问题。 我有一个SELECT statemen,它返回各种数据类型的某些列。我有一个接口,我将它传递给JPA存储库,这样它就可以进行接口映射。但是它不是根据列名映射结果(例如'accountnum'->),而是按照字母顺序映射列。因此,如果'date_of_orde

  • D3默认包括了一些常见投影,如下所示。众多的(不太常用的)投影在扩展地理投影插件和多面体投影插件中是可用的。 由D3提供的大多数投影都是通过d3.geo.projection来创建并配置的,你可以旋转这个地球,缩放或转换画布等。除非你正在执行一个新的原始投影,否则你可能不会用D3.geo.projection来构造,但是你有可能使用这个配置方法。 d3.geo.projection(raw) 从指

  • 我试图通过示例查询来过滤数据。它适用于实体和基本体,但不适用于投影。你知道SpringDataJpa中是否有这样的功能吗?

  • 问题内容: 您好,我想按查询排除某些字段。我正在使用nodejs 但在结果集中,我一直在获取密码字段。 问题答案: 投影不适用于新的nodejs mongodb驱动程序…相反,您将不得不在 此处使用游标方法