Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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中带有@Query注释的本机查询_Java_Spring_Hibernate_Jpa_Nativequery - Fatal编程技术网

Java Spring中带有@Query注释的本机查询

Java Spring中带有@Query注释的本机查询,java,spring,hibernate,jpa,nativequery,Java,Spring,Hibernate,Jpa,Nativequery,我在春季遇到了本机查询的问题。我使用注释@Query和参数nativeQuery=true,并在参数值中使用SQL查询 我在文件RezerwacjaDao.java中有fallowing方法: @Query(value = "select d.DATA, pt.POKOJTYP_ID, pt.POKOJTYP_NAZWA, 10 \n" + "from LISTADAT(:data_od, :data_do) d \n" + "left join POKOJTYP

我在春季遇到了本机查询的问题。我使用注释@Query和参数nativeQuery=true,并在参数值中使用SQL查询

我在文件RezerwacjaDao.java中有fallowing方法:

@Query(value = "select d.DATA, pt.POKOJTYP_ID, pt.POKOJTYP_NAZWA, 10 \n" +
        "from LISTADAT(:data_od, :data_do) d \n" +
        "left join POKOJTYP pt on 1=1 \n" +
        "order by d.DATA, pt.POKOJTYP_NAZWA",
        nativeQuery = true)
List<DostepnoscTypyListDTO> getDostepnoscNaTypy(
        @Param("data_od") Date dataOd,
        @Param("data_do") Date dataDo);
@Query(value = 
    "cast(d.DATA as Date) as naDzien, pt.POKOJTYP_ID as pokojtypId, pt.POKOJTYP_NAZWA as pokojtypNazwa, 10 as ileDostepnych \n" +
    "from LISTADAT(:data_od, :data_do) d \n" +
    "left join POKOJTYP pt on 1=1 \n" +
    "order by d.DATA, pt.POKOJTYP_NAZWA",
    nativeQuery = true)
List<DostepnoscTypyListProjection> getDostepnoscNaTypy(
        @Param("data_od") Date dataOd,
        @Param("data_do") Date dataDo);
DostepnoscTypyListDTO.java:

public class DostepnoscTypyListDTO {

   @Getter @Setter private Integer pokojtypId;
   @Getter @Setter private String pokojtypNazwa;
   @Getter @Setter private String naDzien;
   @Getter @Setter private Integer ileDostepnych;

    public DostepnoscTypyListDTO(
            String naDzien, Integer pokojtypId, String pokojtypNazwa,
            Integer ileDostepnych) {

        this.pokojtypId = pokojtypId;
        this.pokojtypNazwa = pokojtypNazwa;
        this.naDzien = naDzien;
        this.ileDostepnych = ileDostepnych;
    }

    public DostepnoscTypyListDTO(
            Timestamp naDzien, //Date naDzien,
            Integer pokojtypId, String pokojtypNazwa,
            Integer ileDostepnych)  {

        SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd");
        this.naDzien = df.format(naDzien);  //naDzien;

        this.pokojtypId = pokojtypId;
        this.pokojtypNazwa = pokojtypNazwa;
        this.ileDostepnych = ileDostepnych;
    }
}

您需要指定如何将DB返回的响应映射到所需的对象中

默认情况下,本机查询返回对象[],需要将其映射到类。
检查另一篇帖子:

您需要指定如何将DB返回的响应映射到所需的对象中

默认情况下,本机查询返回对象[],需要将其映射到类。
检查另一篇帖子:

您需要将查询的返回类型更改为
列表

@Query(value=“选择d.DATA,pt.POKOJTYP\u ID,pt.POKOJTYP\u NAZWA,10\n”+
“从列表数据(:data\u od,:data\u do)d\n”+
“左连接POKOJTYP pt on 1=1\n”+
“POKOJTYP_NAZWA公司d.DATA订购”,
nativeQuery=true)
列出getDostepnoscNaTypy(
@参数(“数据”)日期数据,
@参数(“数据”日期数据);

Ans将方法的响应
getDostepnoscNaTypy(…)
转换为
List
您需要将查询的返回类型更改为
List

@Query(value=“选择d.DATA,pt.POKOJTYP\u ID,pt.POKOJTYP\u NAZWA,10\n”+
“从列表数据(:data\u od,:data\u do)d\n”+
“左连接POKOJTYP pt on 1=1\n”+
“POKOJTYP_NAZWA公司d.DATA订购”,
nativeQuery=true)
列出getDostepnoscNaTypy(
@参数(“数据”)日期数据,
@参数(“数据”日期数据);

Ans将您的方法的响应
getDostepnoscNaTypy(…)
转换为
List

基于此示例,我更改了代码:

我创建了一个投影接口DostepnoscTypyListProjection.java:

public interface DostepnoscTypyListProjection {

    Date getNaDzien();
    Integer getPokojtypId();
    String getPokojtypNazwa();
    Integer getIleDostepnych();
}
并更改了RezerwacjaDao.java:

@Query(value = "select d.DATA, pt.POKOJTYP_ID, pt.POKOJTYP_NAZWA, 10 \n" +
        "from LISTADAT(:data_od, :data_do) d \n" +
        "left join POKOJTYP pt on 1=1 \n" +
        "order by d.DATA, pt.POKOJTYP_NAZWA",
        nativeQuery = true)
List<DostepnoscTypyListDTO> getDostepnoscNaTypy(
        @Param("data_od") Date dataOd,
        @Param("data_do") Date dataDo);
@Query(value = 
    "cast(d.DATA as Date) as naDzien, pt.POKOJTYP_ID as pokojtypId, pt.POKOJTYP_NAZWA as pokojtypNazwa, 10 as ileDostepnych \n" +
    "from LISTADAT(:data_od, :data_do) d \n" +
    "left join POKOJTYP pt on 1=1 \n" +
    "order by d.DATA, pt.POKOJTYP_NAZWA",
    nativeQuery = true)
List<DostepnoscTypyListProjection> getDostepnoscNaTypy(
        @Param("data_od") Date dataOd,
        @Param("data_do") Date dataDo);
@查询(值=
“铸造(d.数据为日期)为naDzien,pt.POKOJTYP_ID为pokojtypId,pt.POKOJTYP_NAZWA为pokojtypNazwa,10为ileDostepnych\n”+
“从列表数据(:data\u od,:data\u do)d\n”+
“左连接POKOJTYP pt on 1=1\n”+
“POKOJTYP_NAZWA公司d.DATA订购”,
nativeQuery=true)
列出getDostepnoscNaTypy(
@参数(“数据”)日期数据,
@参数(“数据”日期数据);

在其他文件中,我将DostepnoscTypyListDTO更改为DostepnoscTypyListProjection,一切正常。

我根据以下示例更改了代码:

我创建了一个投影接口DostepnoscTypyListProjection.java:

public interface DostepnoscTypyListProjection {

    Date getNaDzien();
    Integer getPokojtypId();
    String getPokojtypNazwa();
    Integer getIleDostepnych();
}
并更改了RezerwacjaDao.java:

@Query(value = "select d.DATA, pt.POKOJTYP_ID, pt.POKOJTYP_NAZWA, 10 \n" +
        "from LISTADAT(:data_od, :data_do) d \n" +
        "left join POKOJTYP pt on 1=1 \n" +
        "order by d.DATA, pt.POKOJTYP_NAZWA",
        nativeQuery = true)
List<DostepnoscTypyListDTO> getDostepnoscNaTypy(
        @Param("data_od") Date dataOd,
        @Param("data_do") Date dataDo);
@Query(value = 
    "cast(d.DATA as Date) as naDzien, pt.POKOJTYP_ID as pokojtypId, pt.POKOJTYP_NAZWA as pokojtypNazwa, 10 as ileDostepnych \n" +
    "from LISTADAT(:data_od, :data_do) d \n" +
    "left join POKOJTYP pt on 1=1 \n" +
    "order by d.DATA, pt.POKOJTYP_NAZWA",
    nativeQuery = true)
List<DostepnoscTypyListProjection> getDostepnoscNaTypy(
        @Param("data_od") Date dataOd,
        @Param("data_do") Date dataDo);
@查询(值=
“铸造(d.数据为日期)为naDzien,pt.POKOJTYP_ID为pokojtypId,pt.POKOJTYP_NAZWA为pokojtypNazwa,10为ileDostepnych\n”+
“从列表数据(:data\u od,:data\u do)d\n”+
“左连接POKOJTYP pt on 1=1\n”+
“POKOJTYP_NAZWA公司d.DATA订购”,
nativeQuery=true)
列出getDostepnoscNaTypy(
@参数(“数据”)日期数据,
@参数(“数据”日期数据);
在其他文件中,我将DostepnoscTypyListDTO更改为DostepnoscTypyListProjection,一切正常