Hibernate 如何在JPA/Play框架中的LIKE子句中使用百分比?

Hibernate 如何在JPA/Play框架中的LIKE子句中使用百分比?,hibernate,jpa,playframework,playframework-1.x,Hibernate,Jpa,Playframework,Playframework 1.x,我想找到其电子邮件中包含字符串middle的所有用户 以下代码失败-JPA似乎无法将?识别为参数,因为它用引号括起来 List<User> users = User.findAll("email like '%?%'", middle); List users=User.findAll(“类似“%”?%”的电子邮件,中间); 以下代码可以工作,但对SQL注入开放: List<User> users = User.findAll("email like '%" + mi

我想找到其电子邮件中包含字符串
middle
的所有用户

以下代码失败-JPA似乎无法将
识别为参数,因为它用引号括起来

List<User> users = User.findAll("email like '%?%'", middle);
List users=User.findAll(“类似“%”?%”的电子邮件,中间);
以下代码可以工作,但对SQL注入开放:

List<User> users = User.findAll("email like '%" + middle + "%'");
List users=User.findAll(“类似“%”+middle+“%”的电子邮件);

您有什么建议?

尝试将字符串操作移动到Java端,并保留SQL参数:

List<User> users = User.findAll("email like ?", "%"+middle+"%");
List users=User.findAll(“类似电子邮件的?”,“%”+middle+“%”);

好主意,我怎么没想到呢!