我需要将一些 MySQL 代码转换为 JPA 命名查询
示例
select * from movies where title like '%matrix%'
我猜会
@NamedQuery(name = "Movies.findMoviePart", query = "SELECT c FROM Movies c where c.title LIKE '% :title %'")}) be but it has some errors
org.springframework.dao.InvalidDataAccessApiUsageException:org.hibernate.QueryParameterException:无法找到命名参数[标题];嵌套异常是 java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: 无法找到命名参数 [title]
dao impl 中的代码
@Override public List getAllPartMovie(String title) {
TypedQuery query = entityManager.createNamedQuery("Movies.findMoviePart", Movies.class); query.setParameter("title", title); try { return query.getResultList(); } catch (NoResultException ex) { // geen record gevonden return null; }
为你的帮助者准备的坦克
最佳答案
不要将 % 添加到查询中,而是将它们添加到查询中的参数中:
query.setParameter("title", "%" + value + "%");
另一个与您的问题几乎相同的问题:How to specify a JPA named parameter surrounded by wildcards?
关于java - 将一些 MYSQL 放入命名查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25626028/