java - 将一些 MYSQL 放入命名查询中

标签 java mysql spring jpa named-query

我需要将一些 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/

相关文章:

java - 将 OpenSessionInViewInterceptor 与 Hibernate 和 JSF 2 结合使用

Java:如何使用日期/日历

java - Spring 4 加密器与 cryptojs

python - 在 Flask、SqlAlchemy、Python 中创建一个自动知道是否插入或更新的函数

Mysql - 按月分区扫描所有分区而不是一个

java - 如何接收/发送虚拟机://mule messages from a spring bean?

java - 如何从另一个 JPanel/JFrame/etc 添加 String JList 元素?

java - 使用 Put on FloatBuffer 时遇到困难

MYSQL:从多个值与单个列匹配至少两次的表中选择 id

java - Spring 3 MVC 请求验证