Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Hibernate 带三个单引号的NativeQuery_Hibernate_Jpa_Spring Boot_Spring Data Jpa - Fatal编程技术网

Hibernate 带三个单引号的NativeQuery

Hibernate 带三个单引号的NativeQuery,hibernate,jpa,spring-boot,spring-data-jpa,Hibernate,Jpa,Spring Boot,Spring Data Jpa,由于三个引号,我的查询失败。这可能是另一个原因,但据我所知,这是由三个引语引起的。我似乎想不出解决这个问题的办法,我需要额外的帮助。我尝试过逃跑和其他一切,但似乎无法解决问题 我使用的是Spring数据JPA @Query(value = "SELECT f FROM Fragrance f WHERE REPLACE(REPLACE(f.name, ' &', ''), '' ', '') = ?1" , nativeQuery = true) Fragrance findByName

由于三个引号,我的查询失败。这可能是另一个原因,但据我所知,这是由三个引语引起的。我似乎想不出解决这个问题的办法,我需要额外的帮助。我尝试过逃跑和其他一切,但似乎无法解决问题

我使用的是Spring数据JPA

@Query(value = "SELECT f FROM Fragrance f WHERE REPLACE(REPLACE(f.name, ' &', ''), '' ', '') = ?1" , nativeQuery = true)
Fragrance findByNameIgnoreSpecialCharacters(String name);
错误


我无法在任何数据库上运行指定的本机查询,因此难怪Hibernate发现它的格式不正确

指定查询


此查询中有两个错误。第一个错误是
SELECT f FROM flanger f…
要求
flanger
表中必须有一个名为
f
的列,但可能没有。请记住,这是一个本机查询,而不是JPA查询。因此,正确的查询应该以
SELECT*FROM flanger…
开头

第二个错误是
''
对于查询来说是无效文本<代码>“表示单引号字符(
)。因此,本文的开头不正确。正确的文本应该是
''''

正确查询

可在Github上获得

java.lang.IllegalArgumentException: Parameter with that position [1] did not exist
    at org.hibernate.jpa.spi.BaseQueryImpl.findParameterRegistration(BaseQueryImpl.java:502) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]
SELECT
  f
FROM
  Fragrance f
WHERE
  REPLACE(REPLACE(f.name, ' &', ''), '' ', '') = ?1
SELECT
  *
FROM
  Fragrance
WHERE
  REPLACE(REPLACE(name, ' &', ''), ''' ', '') = ?1