【问题标题】:JPQL work with LIKE statement and AND conditionJPQL 使用 LIKE 语句和 AND 条件
【发布时间】:2016-12-20 11:16:42
【问题描述】:

请问我的 JPQL 语句有什么错误吗?还是 AND 条件不能与 LIKE 语句一起使用?

public List searchByTime(String from, String to, String a){
 Query q = em.createQuery("SELECT e FROM EnrollmentDetails e WHERE (e.startTime >= ?1 AND e.endTime <= ?2) AND (e.offerCode.offerCode LIKE: ?3)");
 q.setParameter(1,  from);
 q.setParameter(2,  to);
 q.setParameter(3,   a + "%");
  List l = q.getResultList();
  return l;
} 

每当我删除 AND (e.offerCode.offerCode LIKE: ?3)q.setParameter(3, a + "%");,那么声明是有效的,但没有我想要的结果。

我很确定我删除的 2 条语句是正确的,因为它们在其他功能中起作用。

只是在这个功能不起作用。谁能帮帮我。

谢谢。

【问题讨论】:

  • 为什么会有“LIKE:”?冒号: 会让一些解析器感到困惑,他们认为后面跟着一个命名参数,除此之外有一个冒号是非法的
  • 非常感谢,感谢您帮助调试我的错误,我应该休息一下休息一下。谢谢你。哈哈....
  • @NeilStockton 您应该添加您的评论作为答案。

标签: java sql jpa jpql


【解决方案1】:

您在 LIKE 关键字后面有一个冒号 :,这是非法的。 : 只能用作命名参数的一部分。删除它,它可能会起作用

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 2011-10-18
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2013-06-21
    • 1970-01-01
    • 2018-04-12
    相关资源
    最近更新 更多