实体类:
@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 {
Pojo课程:
@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();
}
当我运行调用本机查询的端点时,我得到异常:
无法从类型[java.lang.Object []]转换为类型[com.representation.Representation]以输入值&#39; {0,198}&#39 ;;嵌套异常是org.springframework.core.convert.ConverterNotFoundException:找不到能够从类型[java.math.BigDecimal]转换为[com.representation.Representation]类型的转换器
现在,如果我只是&#34;小时&#34;从我的本机查询返回的字段(以及对POJO构造函数的相关更改等)它工作正常。
任何帮助表示感谢。
答案 0 :(得分:0)
好的,误报。我的hibernate依赖项都搞砸了并导致冲突,从而导致上述异常。
修复这些依赖性问题后,效果很好!!
长话短说:让spring-boot- *处理大多数hibernate依赖,而不是覆盖或管理自己的。