2016-08-13 111 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 :只能用作命名參數的一部分。刪除它,它可能會工作