【问题标题】:How can I use percent in a LIKE clause in JPA/Play Framework?如何在 JPA/Play 框架的 LIKE 子句中使用百分比?
【发布时间】:2012-08-16 12:18:34
【问题描述】:

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

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

List<User> users = User.findAll("email like '%?%'", middle);

以下代码有效,但对 SQL 注入开放:

List<User> users = User.findAll("email like '%" + middle + "%'");

你有什么建议?

【问题讨论】:

    标签: hibernate jpa playframework playframework-1.x


    【解决方案1】:

    尝试将您的字符串操作移至 Java 端,并保留 SQL 参数:

    List<User> users = User.findAll("email like ?", "%"+middle+"%");
    

    【讨论】:

    • 好主意,我怎么没想到呢!
    猜你喜欢
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 2015-02-23
    相关资源
    最近更新 更多