繁体   English   中英

在 Spring Boot 中从 MySQL 表中过滤 JSON 列

[英]Filter JSON column from MySQL table in spring boot

下面是我在 MySQL 表中过滤 json 列的查询,

在此处输入图像描述

    public interface MpaCustomizationRepository extends
        JpaRepository<MpaCustomization, Serializable> {

@Query(nativeQuery = true, value = "select * from MPA_CUSTOMIZATION where json_contains(domain_based_properties, '{\"id\" : ?1}')")
MpaCustomization findByDomainBaseId(String domainId);

}

上述方法抛出以下 SQL 错误,

在此处输入图像描述

但是如果我对变量进行硬编码并像下面那样运行查询,它的工作正常,

@Query(nativeQuery = true, value = "select * from MPA_CUSTOMIZATION where json_contains(domain_based_properties, '{\"id\" : 2}')")
    MpaCustomization findByDomainBaseId(String domainId);

如何解决这个问题?

使用本机查询时使用$.id作为值,因为 SQL 只接受它。 其他方式,您可以使用:id并将参数{\"id\":\"" + <value> + "\"}绑定到查询。

也许以下会起作用。

@Query(nativeQuery = true, value = "select * from MPA_CUSTOMIZATION where json_contains(domain_based_properties, ?1 , '$.id'")
MpaCustomization findByDomainBaseId(String domainId);

资源

暂无
暂无

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

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