我有一个子查询,如下所示: (由于性能问题,它从包含中重新编写)
...(从RecoLock锁中选择mpiSubscriptionId == this.mpiSubscriptionId).isEmpty())
datanucleus抛出了一个
无法执行操作" .isEmpty" on org.datanucleus.store.rdbms.sql.expression.SubqueryExpression
但是在datanucleus documentation中,有类似代码运行良好的例子。我做错了什么?
datanucleus版本是4.1.0
答案 0 :(得分:2)
从我看到的DataNucleus JDOQL对{subquery}.isEmpty()
的支持,这仅从v5.0开始支持。
如果使用v4.x(或更早版本),您可以将查询转换为
... (select COUNT(lock) from RecoLock lock where mpiSubscriptionId == this.mpiSubscriptionId) == 0)
应该等同于" size == 0" (即"空")