Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何筛选列表中特定元素的值?_Google App Engine_Jdo_Datanucleus - Fatal编程技术网

Google app engine 如何筛选列表中特定元素的值?

Google app engine 如何筛选列表中特定元素的值?,google-app-engine,jdo,datanucleus,Google App Engine,Jdo,Datanucleus,使用GAE Java JDO,是否可以过滤列表中特定元素的值 什么有效 通常,我会有以下几点: @PersistenceCapable class A { String field1; String field2; // id, getters and setters } 然后我将构建一个简单的查询: Query q = pm.newQuery(A.class, "field1 == val"); q.declareParameters("Str

使用GAE Java JDO,是否可以过滤列表中特定元素的值

什么有效 通常,我会有以下几点:

@PersistenceCapable
class A {

  String field1;
  String field2;

  // id, getters and setters

}
然后我将构建一个简单的查询:

Query q = pm.newQuery(A.class, "field1 == val");
q.declareParameters("String val");
List<A> list = new ArrayList<A>((List<A>) q.execute("foo"));
Query q=pm.newQuery(A.class,“field1==val”);
q、 申报参数(“字符串val”);
列表显示,这是不可能的:

“属性值必须由应用程序提供;它不能引用或根据其他属性计算”

所以。。。有什么想法吗


提前谢谢

如果只需要按索引+值进行筛选,那么我认为在实际列表值前面加上索引应该可以。(如果还需要按实际值过滤,则需要存储这两个列表。)

i、 e.而不是等同于

fields=['foo'、'bar'、'baz]
带查询过滤器
fields[1]='bar'

你会的

fields=['0-foo','1-bar','2-baz']
带有查询过滤器
fields=='1-bar'


(但在java中)

运气不好。我试图声明两个参数(索引和值),但是这个查询:
SELECT FROM xxx.AA其中fields=='index val'参数String index,String val,
不返回任何结果(当它应该返回一个结果时)。嗯。。。我不理解这段代码:(如果不清楚,您必须将存储的内容更改为一个新值,该值是由您将索引和值组合而成的,没有任何自动/固有的方法可以解决问题。
@PersistenceCapable
class AA {

  ArrayList<String> fields;

  // id, getters and setters

}
int index = 0;
Query q = pm.newQuery(A.class, "fields.get(index) == val");
q.declareParameters("int index, String val");
List<A> list = new ArrayList<A>((List<A>) q.execute(index, "foo"));
org.datanucleus.store.appengine.query.DatastoreQuery$UnsupportedDatastoreFeatureException:
Problem with query 
<SELECT FROM xxx.AA WHERE fields.get(index) == val PARAMETERS int index, String val,>:     
Unsupported method <get> while parsing expression: 
InvokeExpression{[PrimaryExpression{strings}].get(ParameterExpression{ui})}