问题描述
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 (将#修改为@)