与JPA存储库一起使用时,SQL语句不起作用

时间:2019-07-16 20:27:16

标签: hibernate rest spring-boot spring-data-jpa

我正在尝试从MYSQL获取记录,同时发布来自GET的{​​{1}}请求。 POSTMEN查询可在SQL控制台中使用,但不能在JPA存储库中使用。

MYSQL

实际结果

  

未选择数据

预期结果

  

数据库中有一行可用,该行是在与MySQL控制台一起使用时作为查询结果返回的,也应在此处返回。

更新 通过按照建议的方式更新查询,在输出中未进行任何更改。这是打印的查询

@Repository
public interface RecipeRepository extends JpaRepository<Recipe, Long> {
@Query(value = "select * from Recipe where Recipe.id in (select Recipe_id  
    from Recipe_keywords where keywords like '%:keyword_rec%') ", nativeQuery = true)
List<Recipe> findByKeyword(@Param("keyword_rec") String keyword_rec);
}

2 个答案:

答案 0 :(得分:1)

错误已解决,将查询更改为

select * from Recipe r where r.id in (select rk.Recipe_id  from Recipe_keywords rk where rk.keywords like %:keyword_rec%) 

答案 1 :(得分:0)

因为您在MySQL上编写的查询与您为JPA编写的查询稍有不同。

例如SELECT * FROM Customer becomes "SELECT c FROM Customer c"

看看链接: https://www.oracle.com/technetwork/articles/vasiliev-jpql-087123.html