【发布时间】:2010-10-28 15:52:28
【问题描述】:
我正在让应用程序在 Google App Engine 上运行,但在使用 JDO 获取数据时遇到问题。我有消息类,它有属性private List<String> labels;。现在我想要一些搜索功能,它将一个字符串(标签)作为参数并搜索所有消息以获取具有给定标签的消息。问题出在 JDO 查询上,现在我有
this(字符串 this.label 是搜索参数):
String query = "select from " + Message.class.getName() + " where (labels.contains('" + this.label + "')) ";
它可以在 localhost 上运行,但不能在 GAE 中运行(返回 NULL)。另一个(也是幼稚的)尝试是
query = "select from " + Note.class.getName() + " where labels=='" + this.label + "'";
而且它也只能在本地主机上工作,而不是 GAE
有人知道怎么做吗?感谢您的帮助
【问题讨论】:
-
不知道为什么事情会起作用或不起作用,但只是说第二个不是有效的 JDOQL,所以最好忘记那个。是的,GAE/J 人可能会说他们支持它,但这是对 JDO 规范的颠覆。 Collection.contains() 是一个有效的方法调用
标签: java google-app-engine jdo