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

JPA Native Query ConversionFailedException:从类型转换失败

费学
2023-03-14

我需要加入一些表并从中返回结果。查询在JpaRepository中

   @Query(value = " select mt.* from user_data d \n" +
        "  join user_data_marks dm on dm.user_data_marks_id=d.id\n" +
        "  join point mt on mt.point_id= dm.user_data_point_id" +
        "  where mt.point_time = :pointTime ", nativeQuery = true)
List<Point> findAllByPointTime(@Param("pointTime") LocalDate today);

但是当在测试中执行查询时,我得到:

org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.Object[]] to type [com.project.application.model.user.Point] for value '{1, 2019-12-26, ADVANCED}'; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.math.BigInteger] to type [com.project.application.model.user.Point].

我猜问题出在查询本身,但是想不出为什么它不想返回Point类型的对象?

更新:点实体:

@Data
@Entity
@Table(name = "point")
public class Point{

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "point_id")
private long id;

@Column(name = "point_type")
@Enumerated(EnumType.STRING)
private PointType pointType;

@Column(name = "point_time")
private LocalDate pointTime;

共有2个答案

韩良策
2023-03-14

您需要使用< code > @ SqlResultSetMapping 。用法示例在提供的JavaDoc中。

除此之外,Query看起来非常简单,您可以将其重写为JPQL Query,这将给您带来平台独立性、速度等好处,因为它将使用准备好的语句和错误检查,因为Spring Data JPA默认在引导时验证每个JPQL查询。

花品
2023-03-14

< code >从用户数据d中选择mt . *

为什么不:

< code >从点p选择p

 类似资料:
  • 我有Spring Web应用程序(JPA/Hibernate MySQL)。我有三门课。 前10名 产品 产品详细信息 我有一个ProductDao类用于从数据库中检索数据: 和一个类接口: 产品接口 产品接口说明 【这样的结果][1] 现在我想用这个方法列表getAll()从数据库中“拆箱”数据 我在我的spring控制器类中有一个方法: 我有错误: 出现意外错误(类型 = 内部服务器错误,状态

  • 在下面来自的语法中,泛型类型参数在实例化原始类型数组后用于类型转换,

  • Rust 在基本类型之间没有提供隐式类型转换(强制类型转换)(implicit type conversion,coercion )。不过使用 as 关键字进行显式类型转换(explict type conversion,casting)。 一般来说,Rust 的整型类型的转换规则遵循 C 语言的惯例,除了那些在 C 语言是未定义行为的情况。在 Rust 中,所有的整型类型转换的行为都得到了很好的

  • 类型转换可以判断实例的类型,也可以将该实例在其所在的类层次中视为其父类或子类的实例。 Swift 中类型转换的实现为 is 和 as 操作符。这两个操作符使用了一种简单传神的方式来检查一个值的类型或将某个值转换为另一种类型。 如同协议实现的检查(此处应有链接)中描述的那样,你还可以使用类型转换来检查类型是否遵循某个协议。 为类型转换定义类层次 你可以在类及其子类层次中使用类型转换来判断特定类实例的