我试过这段代码
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.
有什么问题?
答案 0 :(得分:3)
见paragraph 10.2.5.8 of the JPQL Language Reference。它应该看起来像where c.id in (1)
。
答案 1 :(得分:1)
以下是来自文档的IN谓词的JPQL兼容示例。
从付款p中选择p,其中类型(p)在(CreditCardPayment, WireTransferPayment)
从客户c中选择c,其中c.hqAddress.state位于('TX','OK', 'LA','NM')
从客户c中选择c,其中c.hqAddress.state位于?
从客户c中选择c,其中c.hqAddress.state位于( 选择dm.state 来自DeliveryMetadata dm 其中dm.salesTax不为null)
选项2.似乎您正在寻找,您可以尝试以下查询。
SELECT c FROM Category c其中c.id in(1)
但是如果你给出恒定的单一值,为什么你不使用=
。