下面是我在 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);
如何解決這個問題?
uj5u.com熱心網友回復:
使用$.id本機查詢時用于值,因為 SQL 只接受它。其他方式,您可以使用:id并將引數系結{\"id\":\"" <value> "\"}到查詢。
uj5u.com熱心網友回復:
也許以下會起作用。
@Query(nativeQuery = true, value = "select * from MPA_CUSTOMIZATION where json_contains(domain_based_properties, ?1 , '$.id'")
MpaCustomization findByDomainBaseId(String domainId);
資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/495694.html
