Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring数据JPA本机查询结果绑定_Spring_Jpa_Spring Data Jpa - Fatal编程技术网

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依赖项,而不是重写或管理您自己的依赖项