【问题标题】:JDO + GoogleAppEngine - search class by value in collectionJDO + GoogleAppEngine - 按集合中的值搜索类
【发布时间】: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


【解决方案1】:

基本上你的说法是错误的。它应该是这样的:

字符串查询 = "SELECT FROM " + Message.class.getName() + " WHERE labels.contains(i) && i.label == labelParam " + “变量”+Labels.class.getName()+“我”+ " 参数 java.lang.String labelParam "

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2022-07-12
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多