繁体   English   中英

spring 数据 jpa,本机查询未设置查询参数

[英]spring data jpa, native query not setting query parameter

我有一个 Spring JPA 存储库,定义了本机查询,查询似乎执行但不产生任何结果。

存储库 class

@Repository
public interface AddressBaseRepository extends JpaRepository<Address, String> {

    @Query(value = "select ADDRESSES.UPRN,ADDRESSES.FID,ADDRESSES.ORGANISATION,ADDRESSES.SUB_BUILDING,BUILDINGS.NAME as BUILDING,ADDRESSES.BUILDING_NUMBER,STREETS.NAME as STREET,TOWNS.NAME as TOWN,LOCALITY.NAME as LOCALITY,POSTCODES.POSTCODE,"
            + "EASTING,"
            + "NORTHING,"
            + "LATITUDE,"
            + "LONGITUDE"
            + " FROM ADDRESSES "
            + " INNER JOIN STREETS ON STREETS.ID = STREET"
            + " INNER JOIN TOWNS ON TOWNS.ID = TOWN"
            + " INNER JOIN POSTCODES ON POSTCODES.ID = POST_CODE"
            + " LEFT JOIN LOCALITY ON LOCALITY.ID = LOCALITY"
            + " LEFT JOIN BUILDINGS ON BUILDINGS.ID = BUILDING_NAME"
            + " LEFT JOIN ORGANISATIONS ON ORGANISATIONS.ID = ORGANISATION"
            + " WHERE ADDRESSES.UPRN = ?1", nativeQuery = true)
    List<Address> getAddressByUprn(String uprn);
}

在检查日志时可以看到查询参数没有被设置

Hibernate: select ADDRESSES.UPRN,ADDRESSES.FID,ADDRESSES.ORGANISATION,ADDRESSES.SUB_BUILDING,BUILDINGS.NAME as BUILDING,ADDRESSES.BUILDING_NUMBER,STREETS.NAME as STREET,TOWNS.NAME as TOWN,LOCALITY.NAME as LOCALITY,POSTCODES.POSTCODE,EASTING,NORTHING,LATITUDE,LONGITUDE FROM ADDRESSES  INNER JOIN STREETS ON STREETS.ID = STREET INNER JOIN TOWNS ON TOWNS.ID = TOWN INNER JOIN POSTCODES ON POSTCODES.ID = POST_CODE LEFT JOIN LOCALITY ON LOCALITY.ID = LOCALITY LEFT JOIN BUILDINGS ON BUILDINGS.ID = BUILDING_NAME LEFT JOIN ORGANISATIONS ON ORGANISATIONS.ID = ORGANISATION WHERE ADDRESSES.UPRN = ?

有人可以指出我为什么没有设置参数的正确方向吗,我也尝试过命名参数并得到相同的结果。

SQL 使用占位符发送,绑定参数的值单独发送。 这不是您看不到预期结果的原因。 正确配置日志记录,您将能够看到绑定的参数。

有关如何为 Hiberante 执行此操作,请参阅使用 Hibernate 时如何打印带有参数值的查询字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM