Google app engine 如何筛选列表中特定元素的值?
使用GAE Java JDO,是否可以过滤列表中特定元素的值 什么有效 通常,我会有以下几点: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
@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})}