【发布时间】:2020-04-29 17:55:15
【问题描述】:
我正在将应用程序从 Spring Boot 1.5 升级到 2.0,但我的 Spring Data JPA 存储库已损坏。我在我的 PostgreSQL 9.6 db 中打开了查询日志,以查看应用程序升级之前和之后查询的不同之处,并观察到从 2.0 开始,查询参数被用双引号括起来,这是不必要的和破坏性的。这是我在查询日志中看到的:
Spring Boot 1.5.22
LOG: execute <unnamed>: select siteentity0_.site_id as site_id1_14_, siteentity0_.description as descript2_14_, siteentity0_.directory as director3_14_, siteentity0_.ip_address as ip_addre4_14_, siteentity0_.name as name5_14_, siteentity0_.server as server6_14_, siteentity0_.status as status7_14_, siteentity0_.type as type8_14_ from site siteentity0_ where siteentity0_.ip_address=$1
DETAIL: parameters: $1 = '127.0.0.1'
Spring Boot 2.0.9
LOG: execute <unnamed>: select siteentity0_.site_id as site_id1_14_, siteentity0_.description as descript2_14_, siteentity0_.directory as director3_14_, siteentity0_.ip_address as ip_addre4_14_, siteentity0_.name as name5_14_, siteentity0_.server as server6_14_, siteentity0_.status as status7_14_, siteentity0_.type as type8_14_ from site siteentity0_ where siteentity0_.ip_address=$1
DETAIL: parameters: $1 = '"127.0.0.1"'
我查看了所有发行说明和迁移指南,但找不到任何可以解释这一点的内容,也找不到任何类似的报告。有什么想法吗?
编辑: 存储库:
import java.util.Collection;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SiteRepository extends JpaRepository<SiteEntity, Integer> {
SiteEntity findByName(String siteName);
Collection<SiteEntity> findByIpAddress(String ipAddress);
Collection<SiteEntity> findByStatus(String status);
Collection<SiteEntity> findByType(String type);
}
【问题讨论】:
-
您可以在此处发布此查询的存储库代码吗?
-
你确定你没有传递转义双引号的值吗?喜欢:
findByIpAddress("\"127.0.0.1\""). -
我没有转义任何引号。除了将代码更新到 Spring Boot 2.0 的最低限度之外,代码没有任何变化。
标签: spring spring-boot spring-data-jpa