问题标签 [jdo]

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 投票
12 回答
28319 浏览

java - Google App Engine 上的 JDO 与 JPA for Java

我想用 Struts2 在 Google App Engine 上开发我的项目。对于数据库,我有两个选项 JPA 和 JDO。你们会建议我吗?两者对我来说都是新的,我需要学习它们。所以我会在你回复后专注于一个。

谢谢。

0 投票
1 回答
1285 浏览

google-app-engine - 在 Intellij IDEA(9.x 预发行版)的单元测试期间在类路径上复制 jdoconfig.xml

如此处所述,IDEA在单元测试运行期间两次将 jdoconfig.xml 添加到类路径中。任何人都可以为此建议解决方法吗?

0 投票
2 回答
2121 浏览

java - Java Google App Engine Datastore:JDO 查询过滤器上可用的“IN”运算符,与 Python 一样?

此页面描述了一个“IN”运算符,可在 GAE 数据存储中用于将字段与可能匹配的列表进行比较,而不仅仅是单个值:

然而,这适用于 Python。在 Java (App Engine 1.2.5) 中,尝试

在我的 javax.jdo.query 上触发 JDOUserException '无法解析表达式部分:IN param'。

有没有办法做到这一点?

0 投票
3 回答
2167 浏览

java - 在 Google App Engine 上使用 JDO 更新“嵌套”对象

我无法找出使用 Google App Engine 和 JDO 更新“嵌套”数据的正确方法。我有一个RecipeJDO和一个IngredientJDO

我希望能够用新的成分列表完全替换给定配方实例中的成分。然后,当该配方被(重新)持久化时,任何先前附加的成分都将从数据存储中完全删除,新的成分将被持久化并与该配方相关联。

就像是:

当我直接更新(分离)配方对象时,这工作正常,从数据存储返回。但是,如果我复制一个 RecipeJDO,然后进行上述更新,它最终会附加新成分,然后当从数据存储区重新获取配方时,这些新成分会与旧成分一起返回。(为什么还要麻烦复制?我在前端使用 GWT,所以我将 JDO 对象复制到 DTO,用户在前端对其进行编辑,然后将它们发送到后端进行更新数据存储。)

为什么我手动创建的对象(设置所有字段,包括 id)与对 PersistenceManager 返回的实例进行操作会得到不同的结果?显然 JDO 的字节码增强以某种方式参与其中。

我最好在坚持更新的配方之前明确删除旧成分吗?

(附带问题——还有其他人对 ORM 感到沮丧,并希望我们可以回到普通的旧 RDBMS 吗?:-)

0 投票
2 回答
3490 浏览

google-app-engine - 使用 Google App Engine 和 JDO 进行全文搜索?

我将 Google App Engine (Java) 与 JDO 一起使用。我怎样才能做JDO相当于

到目前为止,我看到的唯一建议是使用 Lucene。我有点惊讶,这种基本的东西在开箱即用的 GAE 上是不可能的。

0 投票
1 回答
777 浏览

security - 适用于 Google App Engine 的 JDO:转义引号

如何在 JDO(Google App Engine)中转义查询参数?

例如,如果变量名可能包含不安全字符作为单引号 ('),我如何使下一个片段安全

0 投票
2 回答
1137 浏览

java - 一对多关系。从数据存储中选择对象

为了简短起见,我省略了一些代码(包声明、导入、其他字段)。我这里有简单的一对多关系。直到此刻它工作得很好。

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

现在我需要从 DB 中获取(选择)所有餐厅:

但是有一个问题 - 查询给了我 12 家餐厅(如在 DB 中),但每家餐厅都有 0 地址,但在 Datastore 中,每家餐厅至少有 2 个地址。

有没有人遇到同样的问题或知道解决方案?

0 投票
2 回答
2405 浏览

java - 使用 Google 应用引擎数据存储加载枚举集合

我正在使用带有 Java 的 Goole 应用程序引擎数据存储,并尝试加载带有枚举列表的对象。每次我加载对象时,列表都是空的。对象是

枚举很简单

保存它的代码是

加载它的代码是

我可以使用http://localhost:8080/_ah/admin查看数据存储中的数据,并且可以看到我的列表已保存,但加载对象时它不存在。

据我所知,我使用 Eclipse 插件创建了我的项目,并且没有对数据存储设置进行任何更改。那么为什么我的枚举列表为空呢?

0 投票
1 回答
433 浏览

google-app-engine - JDO:引用另一个类“拥有”的实体集合

我有一个RecipeJDO,其中包含一个列表< IngredientJDO >。 RecipeJDO“拥有”成分。这对我来说已经好几个星期了。现在我想介绍一个新类“ GroceryListJDO ”,它引用了各种食谱所拥有的成分。

当我尝试坚持一个新的时GroceryListJDO,我得到以下信息:

似乎 和 之间存在成分的“所有权”RecipeJDO问题GroceryListJDO

我可能会更改GroceryListJDO为仅包含一个List<String>充当 外键的IngredientsJDO,但这违背了使用 ORM 的目的——我必须手动获取并附加我的 DAO 中的成分。

管理需要“附加”到多个容器 JDO 类的 JDO 集合的最佳方法是什么?

这是在 Google App Engine 上的 JDO,FWIW。

0 投票
4 回答
8643 浏览

java - Google App Engine、JDO 和 equals/hashCode

我在 Google App Engine 中有一个运行良好的应用程序。我意识到我忘记实现 equals 和 hashCode 的一个 JDO 增强对象(我需要在一组中使用该对象)。所以我做了。在这些实现中我并没有真正做任何特别的事情,实际上我只是使用 Eclipse 来生成它们。像这样:

所以现在,当我尝试点击应用程序中的任何 URL 时,会抛出此异常:

/addUser javax.jdo.JDOUserException:持久类“类 com.bpapa.myapp.domain.User 似乎没有得到增强。您可能需要重新运行增强器并检查输出中的错误。” 数据库中没有表,但操作需要它。请检查该类的元数据规范。在 org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:427) 在 org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:249) 在 com.bpapa.myapp.servlet.AddUserServlet.doPost(AddUserServlet.java :34)

关于我做错了什么有什么想法吗?