2016-08-13 109 views
0

请问我的JPQL语句是否包含任何错误?或者AND条件不能与LIKE语句一起使用?JPQL使用LIKE语句和AND条件

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条语句是正确的,因为它们在其他函数中工作。

只是在这个功能是行不通的。谁能帮我。

谢谢。

+3

为什么你有“喜欢”?冒号':'会让一些解析器混淆,认为命名参数跟在后面,除此之外冒号是非法的。 –

+0

谢谢毕竟,感谢帮助调试我的错误,我应该休息一下以休息我的眼睛。谢谢。哈哈...... – helloworld1234

+0

@NeilStockton你应该添加你的评论作为答案。 –

回答

0

你有一个冒号:紧接着LIKE这个关键字是非法的。 A :只能用作命名参数的一部分。删除它,它可能会工作