问题标签 [jdoql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
992 浏览

java - 如何使用 JDOQL 查询接口并过滤结果集?

我有一个界面

持久层使用 JDO。JDO 实现是DataNucleus。现在我想用 JDOQL 查询该接口的任何实例。

查询查询 = getPersistenceManager().newQuery(MyInterface.class);

这很好用。现在我想按名称过滤查询结果。当然接口没有属性。其实现的属性可能不同。MyInterface 的任何实例都通过 getName() 方法返回其名称。

如何将此方法与 JDOQL 一起使用?

我试了一下:

  1. query.setFilter("name == \"" + name);
  2. query.setFilter("name() == \"" + name);
  3. query.declareVariables("myPackage.MyInterface myInterface"); query.setFilter("myInterface.name == \"" + name);
  4. query.declareVariables("myPackage.MyInterface myInterface"); query.setFilter("myInterface.name() == \"" + name);

JDO 仍然不断抛出异常(看底部)。我不确定这是否适用于接口,但是有一个 get 和一个 set 访问器方法,这是 java beans 术语中的一个属性。我将@Persistent注释添加到接口及其实现的 getName() 方法中,但没有任何改变。

如何过滤接口实例的查询?

提前致谢。

这是 JDO 抛出的异常:

0 投票
2 回答
467 浏览

java - JDOQL 使用“包含”请求获取结果的问题

我正在为一个项目使用 Google App Engine,我需要对数据库进行一些查询。我使用 JDOQL 询问数据库。就我而言,我想获得包含子字符串“array”的大学。我认为我的查询有错误,因为它按字母顺序返回大学的名称,而不是包含子字符串的名称。

有人可以告诉我我的查询有什么问题吗?

谢谢您的帮助!

编辑

我有一个大学商店的列表,我有一个建议箱,我们可以在其中以他的名字请求一所大学。我想自动完成请求的名称。

0 投票
2 回答
1711 浏览

jdo - 为什么使用“匹配”语义的 JDOQL 查询仅适用于文字?

我正在尝试构建一个 JDOQL 查询(使用 datanucleus),它将根据拥有的一对多子类中的条件搜索父类的匹配项。查询如下所示:

我的数据集如下所示:

  • 模块[1]
    • ModuleMapping[1]: 标准=".*"
  • 模块[2]
    • ModuleMapping[1]: 标准=".*星际迷航.*"
    • ModuleMapping[2]: 标准=".*StarWars.*"

查询从不匹配任何内容!但是,如果我用文字matches替换JDOQL 方法的参数:

事情将适用于该单个示例,我的查询将找到Module[2]。我错过了什么?我是否不允许使用映射字段的内容作为 JDOQL 方法的参数?我需要以某种方式逃避事情吗?

戴夫

0 投票
1 回答
39 浏览

java - 在 JDOQL 中舍入一个值

我在 GAE 数据存储中有数据。我想针对该数据编写一个 JDOQL,该数据采用其中一列并将其值四舍五入。我可以这样做吗?

0 投票
1 回答
77 浏览

java - 在 GAE 中使用 JDOQL 中的“INTO”关键字

我有一个持久类,“会议”,其中有一个“分钟”和“小时”字段。我只需要这两个字段来填充我的 ui 中的下拉列表。我找到的示例告诉我,我可以创建一个仅包含这两个字段的简单 bean,但我收到一条错误消息,指出它无法将 Integer 转换为 MyTime 对象。它显然没有将数据映射到 bean,不幸的是,这是我能找到的唯一示例。

以下是运行执行后调试模式下“时间”的样子:[0, 0, 0, 0, 0, 0, 8, 10, 21]

然后,当我尝试将时间转换和索引到 MyTime 对象时,我在 for 循环中遇到错误。java.lang.ClassCastException:java.lang.Integer 无法转换为 com.emooney.meeting.beans.MyTime

有什么想法可以在不必为每次会议带回整个“会议”对象的情况下获取这些数据吗?

这是 MyTime bean:

}

0 投票
1 回答
173 浏览

java - 使用 Google App Engine (Java) 上的键列表获取多个对象的最佳方法是什么?

我有一个多对多的关系。就像文档中的示例一样:

如果我已经检索到“Person”对象并且我有 favoriteFoods 键集,我如何获得某个“美食爱好者”的所有“最喜欢的食物”。有没有比以下更好的方法:

这里最便宜和最有效的选择是什么?我通常必须在我的应用程序中生成带有对象数据的表。

0 投票
1 回答
779 浏览

jdo - JDOQL 子查询计数问题

我在使用 JDOQL(使用 DataNucleus)时遇到子查询计数问题。以下查询

导致异常

以下查询均无效:

确保子查询结果不为空的正确方法是什么?

0 投票
1 回答
268 浏览

google-app-engine - 具有 JDOQL 唯一结果集的查询

在我的 GAE 应用程序中,我想创建一个 JDOQL,它返回一个列表,其中每个元素最多存在一次,即使在数据库中还有更多。我怎样才能做到这一点?

0 投票
1 回答
472 浏览

google-app-engine - 在 GAE 中使用 OR 进行 JDO 查询

有一个像这样的实体A

如何编写一个 JDO 查询来选择与关键字 ==a 或关键字 ==b 匹配的所有 A 对象

完整代码如下所示:

此代码没有给出任何错误,但没有给出任何结果。删除 || 部分给出结果。

谢谢

0 投票
1 回答
491 浏览

java - 使用对象 ID 的 JDO 查询

我有一个User对象,它Transaction下面有一组对象。

我为我的User对象存储对象 ID,现在需要一个查询来汇总User 对象下的事务:

给定User' 对象 ID,我想要集合中所有Transaction.txnAmount' 的总和。User.transactions

我对此的看法是:

我已经验证了 userID 确实是一个数据库标识符对象,因为它应该是(我可以使用它通过 ID 查询用户对象)。但我在 query.execute() 方法中遇到异常:

javax.jdo.JDOException:方法“JDOHelper.getObjectId”的调用为空,但 SODA 查询当前不支持

使用 DB4O 作为数据存储,DataNucleus 2.2.1 作为 JDO 实现