2013-07-22 82 views
-1

我想這個代碼如何在JPQL中使用in子句?

Query q = em.createQuery("SELECT c FROM Category c where c.id in 1"); 

,但我有這個錯誤

An exception occurred while creating a query in EntityManager: 
    Exception Description: Syntax error parsing [SELECT c FROM Category c where c.id in 1]. 
    [31, 40] The expression is not a valid conditional expression. 

是什麼問題?

回答

1

下面是來自文檔的IN謂詞的JPQL兼容示例。

  1. 從付款p選擇p其中式(P)中(類:CreditCardPayment, WireTransferPayment)

  2. 從客戶c選擇c其中c.hqAddress.state在( 'TX', 'OK', 'LA','NM')

  3. select c from Customer c where c.hqAddress.state in?

  4. 從客戶c選擇c其中c.hqAddress.state在( 選擇dm.state 從DeliveryMetadata DM 其中dm.salesTax不爲null)

選項2似乎你是什麼尋找,你可以嘗試下面的查詢。

SELECT c從C類,其中c.id(1)

但是,如果你爲什麼不使用=而不是給定一個值。