使用Spring JPA SqlResultSetMapping调用存储过程并将查询结果映射到非实体POJO

问题描述

我正在尝试使用@sqlresultsetmapping和@ConstructorResult将存储过程的结果映射到非实体POJO。这是我的代码

@MappedSuperclass
@sqlresultsetmapping(name = "Testing",classes = @ConstructorResult(targetClass = Testing.class,columns = {
        @ColumnResult(name = "TTEAM_ID",type = Integer.class),@ColumnResult(name = "VDATE",type = BigInteger.class),@ColumnResult(name = "Days_in_Field",@ColumnResult(name = "Expected_cummilative_Number_of_HH",@ColumnResult(name = "Cummlative_HH_Reached",@ColumnResult(name = "HH_Reached_for_day",@ColumnResult(name = "HHs_Finalised_for_day",@ColumnResult(name = "Number_of_HH_in_process_for_day",@ColumnResult(name = "Number_of_HH_Refused_for_day",@ColumnResult(name = "Number_of_Revisits_Scheduled_for_day",@ColumnResult(name = "HH_loss_3rd_visit_attempt_refusals_for_day",type = Integer.class)}))

public class Testing {

    private Integer tteam_id;
    private Integer vdate;
    private Integer days_in_field;
    private Integer Expected_cummilative_Number_of_HH;
    private Integer Cummlative_HH_Reached;
    private Integer HH_Reached_for_day;
    private Integer HHs_Finalised_for_day;
    private Integer Number_of_HH_in_process_for_day;
    private Integer Number_of_HH_Refused_for_day;
    private Integer Number_of_Revisits_Scheduled_for_day;
    private Integer HH_loss_3rd_visit_attempt_refusals_for_day;

    public Testing(Integer tteam_id,Integer vdate,Integer Expected_cummilative_Number_of_HH,Integer Cummlative_HH_Reached,Integer HH_Reached_for_day,Integer HHs_Finalised_for_day,Integer Number_of_HH_in_process_for_day,Integer Number_of_HH_Refused_for_day,Integer Number_of_Revisits_Scheduled_for_day,Integer HH_loss_3rd_visit_attempt_refusals_for_day ) {
        this.tteam_id = tteam_id;
        this.vdate = vdate;
        this.Expected_cummilative_Number_of_HH = Expected_cummilative_Number_of_HH;
        this.Cummlative_HH_Reached = Cummlative_HH_Reached;
        this.HH_Reached_for_day = HH_Reached_for_day;
        this.HHs_Finalised_for_day = HHs_Finalised_for_day;
        this.Number_of_HH_in_process_for_day = Number_of_HH_in_process_for_day;
        this.Number_of_HH_Refused_for_day = Number_of_HH_Refused_for_day;
        this.Number_of_Revisits_Scheduled_for_day = Number_of_Revisits_Scheduled_for_day;
        this.HH_loss_3rd_visit_attempt_refusals_for_day = HH_loss_3rd_visit_attempt_refusals_for_day;
    }
//getter  and setters

然后调用我的存储过程

public List<Testing> getDailyAchievements(){
        List list;
        StoredProcedureQuery query = entityManager.createStoredProcedureQuery("dailyreports","Testing");
        try {
            // Execute query
            query.execute();
            list = query.getResultList();
        } finally {
            try {
                query.unwrap(ProcedureOutputs.class).release();
            } catch (Exception e) {
            }
        }
        return list;
    }

我最终收到错误消息

无法在类上找到合适的构造函数: com.ram.Testing

尝试调试应用程序后,我最终收到错误消息

com.microsoft.sqlserver.jdbc.sqlServerException:该语句是 关闭

我找到了一些资源,其中包括@ConstructorResult mapping但我仍然没有运气。

我想念什么?为什么找不到构造函数

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...