如何解决您可以使用JDOQL的声明性API在子查询中使用未绑定变量吗?
DataNucleus JDO Query Guide提供了一些示例,其中可以使用最终参数(作为匿名值或作为命名参数映射)将在外部查询中评估的绑定参数传递到子查询中。这样,尽管不一定要允许参数声明,但子查询仍可以接受参数。
Query averageSalaryQuery = pm.newQuery(Employee.class); averageSalaryQuery.setResult("avg(this.salary)"); averageSalaryQuery.setFilter("this.lastName == :lastNameParam"); Query q = pm.newQuery(Employee.class,"salary > averageSalary"); q.declareVariables("double averageSalary"); q.addSubquery(averageSalaryQuery,"double averageSalary",null,"this.lastName"); List<Employee> results = q.executeList();
但是,指南中没有在子查询中使用未绑定变量的示例。我都尝试过
- 在子查询对象上调用
subquery.declareVariables("String my_var")
,然后在过滤器中引用my_var
- 在外部查询对象上调用
outerQuery.declareVariables("String my_var")
,提供my_var
作为参数表达式,并在过滤器中引用:my_var
并且在两种情况下都遇到错误:
org.datanucleus.exceptions.NucleusUserException: Variable 'my_var' is unbound and cannot be determined (is it a misspelled field name? or is not intended to be a variable?)
是否可以在JDOQL子查询中使用未绑定的变量(特别是使用声明性API)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。