为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 jpa 存储库(春季启动)获得多个平均值

如何使用 jpa 存储库(春季启动)获得多个平均值

喵喵时光机 2021-11-17 10:42:04
我的 jpa 存储库中有此查询@Query("SELECT new mx.com.sk.AveragesPojo(AVG(a.initial), AVG(a.initialEFSL), AVG(a.finalEFSL), AVG(a.entitySettlement)) FROM AveragesModel AS a WHERE groupName = :groupName AND idRemote = :idRemote")    public AverajesPojo getLastSurveyAverages(@Param("groupName") String groupName, @Param("idRemote") Long idRemote);}在我的 pojo 构造函数中是:public AverajesPojo(Float initial, Float initialEFSL, Float entitySettlement, Float finalEFSL) {    super();    this.initial = initial;    this.initialEFSL = initialEFSL;    this.entitySettlement = entitySettlement;    this.finalEFSL = finalEFSL;}但我有这个错误:创建名为“averagesRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException:查询方法公共抽象 mx.com.sk.pojos.AverajesPojo mx.com.sk.admin.repositories.AveragesRepository.getLastSurveyAverages(java.lang.String,java.lang.长)!我的错误是什么?
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

请在你的 DTO 结构中使用 double 而不是 float,如果你想从 DTO 返回 float 那么你可以在你的结构中管理它。


AVG 函数将状态字段路径表达式作为参数,并计算组上的状态字段的平均值。状态字段必须是数字,结果以 Double 形式返回。


public class AveragesPojo {

    private double initial;

    private double initialEFSL;

    private double entitySettlement;

    private double finalEFSL;


    public AveragesPojo(double initial, double initialEFSL, double entitySettlement, double finalEFSL) {

        super();

        this.initial = initial;

        this.initialEFSL = initialEFSL;

        this.entitySettlement = entitySettlement;

        this.finalEFSL = finalEFSL;

    }


}

还请使用a.groupName&a.idRemote并且返回类型应该与构造相同,因为它们具有相同的类型值将被返回,但它们将根据您的查询参数。所以让他们喜欢你的结构。entitySettlement和 finalEFSL:


@Query("SELECT new mx.com.sk.AveragesPojo(AVG(a.initial), AVG(a.initialEFSL), AVG(a.entitySettlement), AVG(a.finalEFSL )) FROM AveragesModel AS a WHERE a.groupName = :groupName AND a.idRemote = :idRemote")

public AverajesPojo getLastSurveyAverages(@Param("groupName") String groupName, @Param("idRemote") Long idRemote);

}


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信