我想写这样的查询
@Query("select p from Product p where p.name = ?1 or p.desc like %?1%")
但它给了我异常(exception)
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: % near line 1,
我尝试用 '%' 替换 % 或像这样连接查询字符串:"select ... like '%'"+ "?1"+ "'%'"但没有成功,请帮助我
最佳答案
如果您使用的是 Spring Data JPA 1.3.1 或更高版本,您需要执行以下操作:
@Query("select p from Product p where p.name = :name or p.desc like %:name%")
public List<Product> searchByName(@Param("name") String name);
查看 this博客文章了解更多详情
在 Spring Data JPA 1.3.1 之前,您不能在 @Query 注释中使用 %
,而是需要将它添加到参数本身
关于hibernate - @Query 注解使用 like %?1%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23326642/