Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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
Java 调用存储过程并使用Spring JPA SqlResultSetMapping将查询结果映射到非实体POJO_Java_Hibernate_Jpa_Pojo_Sqlresultsetmapping - Fatal编程技术网

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

Java 调用存储过程并使用Spring JPA SqlResultSetMapping将查询结果映射到非实体POJO,java,hibernate,jpa,pojo,sqlresultsetmapping,Java,Hibernate,Jpa,Pojo,Sqlresultsetmapping,我试图使用@sqlresultsmapping with@ConstructorResult将存储过程的结果映射到非实体POJO。这是我的密码: @MappedSuperclass @SqlResultSetMapping(name = "Testing", classes = @ConstructorResult(targetClass = Testing.class, columns = { @ColumnResult(name = "TTEAM

我试图使用@sqlresultsmapping with@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", type = Integer.class),
        @ColumnResult(name = "Expected_cummilative_Number_of_HH", type = Integer.class),
        @ColumnResult(name = "Cummlative_HH_Reached",type = Integer.class),
        @ColumnResult(name = "HH_Reached_for_day",type = Integer.class),
        @ColumnResult(name = "HHs_Finalised_for_day", type = Integer.class),
        @ColumnResult(name = "Number_of_HH_in_process_for_day", type = Integer.class),
        @ColumnResult(name = "Number_of_HH_Refused_for_day",type = Integer.class),
        @ColumnResult(name = "Number_of_Revisits_Scheduled_for_day", type = Integer.class),
        @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;
    }
public List getdailyachievents(){
名单;
StoredProcedureQuery=entityManager.createStoredProcedureQuery(“DailReports”、“Testing”);
试一试{
//执行查询
query.execute();
list=query.getResultList();
}最后{
试一试{
展开(procedureOutput.class).release();
}捕获(例外e){
}
}
退货清单;
}
我最终得到了错误

在类上找不到适当的构造函数: com.ram.Testing

在尝试调试应用程序之后,我最终得到了错误

com.microsoft.sqlserver.jdbc.SQLServerException:语句为 关闭

我找到了一些资源,包括这个:但我仍然没有任何运气


我错过了什么?为什么找不到构造函数?

存储过程需要根据列映射准确返回列。你能给我们看一下手动调用的存储过程或结果吗?嗨@Michal我已经添加了存储过程Hi@Michal我还添加了一个存储过程结果的屏幕截图。乍一看一切正常。我将尝试减少输出列和Java属性的数量,以查看错误所在。通过查看代码,我没有发现任何明显的错误。整数类型是正确的,不是吗?