无法执行操作" .isEmpty"在org.datanucleus.store.rdbms.sql.expression.SubqueryExpression上

时间:2017-06-07 09:35:54

标签: java jdo datanucleus

我有一个子查询,如下所示: (由于性能问题,它从包含中重新编写)

...(从RecoLock锁中选择mpiSubscriptionId == this.mpiSubscriptionId).isEmpty())

datanucleus抛出了一个

无法执行操作" .isEmpty" on org.datanucleus.store.rdbms.sql.expression.SubqueryExpression

但是在datanucleus documentation中,有类似代码运行良好的例子。我做错了什么?

datanucleus版本是4.1.0

1 个答案:

答案 0 :(得分:2)

从我看到的DataNucleus JDOQL对{subquery}.isEmpty()的支持,这仅从v5.0开始支持。

如果使用v4.x(或更早版本),您可以将查询转换为

... (select COUNT(lock) from RecoLock lock where mpiSubscriptionId == this.mpiSubscriptionId) == 0)

应该等同于" size == 0" (即"空")