Spring数据JPA本机查询结果绑定
实体类:Spring数据JPA本机查询结果绑定,spring,jpa,spring-data-jpa,Spring,Jpa,Spring Data Jpa,实体类: @Entity @SqlResultSetMapping( name="hourMapping", classes=@ConstructorResult( targetClass=Representation.class, columns={ @ColumnResult(name="hour", type=BigDecimal.class),
@Entity
@SqlResultSetMapping(
name="hourMapping",
classes=@ConstructorResult(
targetClass=Representation.class,
columns={
@ColumnResult(name="hour", type=BigDecimal.class),
@ColumnResult(name="transactions", type=BigDecimal.class)
}
)
)
@NamedNativeQuery(name="MyEntity.reportByHour", query="SELECT hour,SUM(tran_per_hour) AS transactions FROM MY_ENTITY GROUP BY hour ORDER BY hour"
,resultSetMapping="hourMapping")
@Table(name="MY_ENTITY")
public class MyEntity implements Serializable {
@Data //Lombok
@JsonAutoDetect(fieldVisibility = Visibility.ANY)
public class Representation {
public Representation(BigDecimal hour, BigDecimal transactions) {
this.hour = hour;
this.transactions = transactions;
}
private BigDecimal hour;
private BigDecimal transactions;
Pojo类:
@Entity
@SqlResultSetMapping(
name="hourMapping",
classes=@ConstructorResult(
targetClass=Representation.class,
columns={
@ColumnResult(name="hour", type=BigDecimal.class),
@ColumnResult(name="transactions", type=BigDecimal.class)
}
)
)
@NamedNativeQuery(name="MyEntity.reportByHour", query="SELECT hour,SUM(tran_per_hour) AS transactions FROM MY_ENTITY GROUP BY hour ORDER BY hour"
,resultSetMapping="hourMapping")
@Table(name="MY_ENTITY")
public class MyEntity implements Serializable {
@Data //Lombok
@JsonAutoDetect(fieldVisibility = Visibility.ANY)
public class Representation {
public Representation(BigDecimal hour, BigDecimal transactions) {
this.hour = hour;
this.transactions = transactions;
}
private BigDecimal hour;
private BigDecimal transactions;
存储库接口:
public interface MyEntityRepository extends JpaRepository<MyEntity, MyEntityPK> {
List<Representation> reportByHour();
}
公共接口MyEntityRepository扩展了JpaRepository{
List reportByHour();
}
当我运行调用本机查询的端点时,我得到异常:
无法将值“{0,198}”的类型[java.lang.Object[]转换为类型[com.representation.representation];嵌套异常为org.springframework.core.convert.ConverterNotFoundException:未找到能够从类型[java.math.BigDecimal]转换为类型[com.representation.representation]的转换器
现在,如果我从本机查询返回“hour”字段(以及对POJO构造函数的相关更改等),它就可以正常工作了
感谢您的帮助。好的,虚惊一场。我的hibernate依赖项都混乱不堪,导致冲突,因此导致上述异常 解决了这些依赖性问题后,效果非常好
长话短说:让spring引导-*处理大多数hibernate依赖项,而不是覆盖或管理自己的依赖项。好的,假警报。我的hibernate依赖项都混乱不堪,导致冲突,因此导致上述异常 解决了这些依赖性问题后,效果非常好 长话短说:让SpringBoot-*处理大多数hibernate依赖项,而不是重写或管理您自己的依赖项