【发布时间】:2020-03-06 19:49:11
【问题描述】:
我在 Spring Boot 中的表上有一个自定义查询。我想将结果存储在 POJO 中。
public interface LegalRepository extends JpaRepository<LegalEntity, Long> {
@Query(value = "...SELECT company_id as id ,AVG((...)) as average ...." ,nativeQuery = true)
List<QueryObject> returnMeanValue();
}
LegalEntity是数据表的主要实体,QueryObject是派生的。
查询结果如下:
公司 ID |平均
1 | 1560850.633333333
2 | 2365230.933333333
3 | 13714243.266666666
4 | 15375235.133333333
这是我的 POJO:
@Entity
public class QueryObject {
@Id
Integer company_id;
@Column(name="average")
Double average;
public Integer getCompany_id() {
return company_id;
}
public void setCompany_id(Integer company_id) {
this.company_id = company_id;
}
public Double getAverage() {
return average;
}
public void setAverage(Double average) {
this.average = average;
}
@Override
public String toString() {
return "QueryObject [company_id=" + company_id + ", average=" + average + "]";
}
public QueryObject(Integer company_id, Double average) {
super();
this.company_id = company_id;
this.average = average;
}
}
请注意,company_id 是唯一的。
执行后:
@Bean
public void getUp() {
List<QueryObject> qo;
qo = leg_rep.returnMeanValue();
log.info(qo.get(0).toString());
}
抛出以下异常:
org.springframework.core.convert.ConversionFailedException: 无法从类型 [java.lang.Object[]] 转换为值 '{1, 1560850.633333333}' 的类型 [QueryObject];
嵌套异常是 org.springframework.core.convert.ConverterNotFoundException:未找到能够从 [java.lang.Integer] 类型转换为 [QueryObject] 类型的转换器
我应该如何解决这个问题?
【问题讨论】:
标签: java spring-boot spring-data-jpa