问题标签 [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.
java - Google App Engine 上的 JDO 与 JPA for Java
我想用 Struts2 在 Google App Engine 上开发我的项目。对于数据库,我有两个选项 JPA 和 JDO。你们会建议我吗?两者对我来说都是新的,我需要学习它们。所以我会在你回复后专注于一个。
谢谢。
google-app-engine - 在 Intellij IDEA(9.x 预发行版)的单元测试期间在类路径上复制 jdoconfig.xml
如此处所述,IDEA在单元测试运行期间两次将 jdoconfig.xml 添加到类路径中。任何人都可以为此建议解决方法吗?
java - Java Google App Engine Datastore:JDO 查询过滤器上可用的“IN”运算符,与 Python 一样?
此页面描述了一个“IN”运算符,可在 GAE 数据存储中用于将字段与可能匹配的列表进行比较,而不仅仅是单个值:
然而,这适用于 Python。在 Java (App Engine 1.2.5) 中,尝试
在我的 javax.jdo.query 上触发 JDOUserException '无法解析表达式部分:IN param'。
有没有办法做到这一点?
java - 在 Google App Engine 上使用 JDO 更新“嵌套”对象
我无法找出使用 Google App Engine 和 JDO 更新“嵌套”数据的正确方法。我有一个RecipeJDO和一个IngredientJDO。
我希望能够用新的成分列表完全替换给定配方实例中的成分。然后,当该配方被(重新)持久化时,任何先前附加的成分都将从数据存储中完全删除,新的成分将被持久化并与该配方相关联。
就像是:
当我直接更新(分离)配方对象时,这工作正常,从数据存储返回。但是,如果我复制一个 RecipeJDO,然后进行上述更新,它最终会附加新成分,然后当从数据存储区重新获取配方时,这些新成分会与旧成分一起返回。(为什么还要麻烦复制?我在前端使用 GWT,所以我将 JDO 对象复制到 DTO,用户在前端对其进行编辑,然后将它们发送到后端进行更新数据存储。)
为什么我手动创建的对象(设置所有字段,包括 id)与对 PersistenceManager 返回的实例进行操作会得到不同的结果?显然 JDO 的字节码增强以某种方式参与其中。
我最好在坚持更新的配方之前明确删除旧成分吗?
(附带问题——还有其他人对 ORM 感到沮丧,并希望我们可以回到普通的旧 RDBMS 吗?:-)
google-app-engine - 使用 Google App Engine 和 JDO 进行全文搜索?
我将 Google App Engine (Java) 与 JDO 一起使用。我怎样才能做JDO相当于
到目前为止,我看到的唯一建议是使用 Lucene。我有点惊讶,这种基本的东西在开箱即用的 GAE 上是不可能的。
security - 适用于 Google App Engine 的 JDO:转义引号
如何在 JDO(Google App Engine)中转义查询参数?
例如,如果变量名可能包含不安全字符作为单引号 ('),我如何使下一个片段安全
java - 一对多关系。从数据存储中选择对象
为了简短起见,我省略了一些代码(包声明、导入、其他字段)。我这里有简单的一对多关系。直到此刻它工作得很好。
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
现在我需要从 DB 中获取(选择)所有餐厅:
但是有一个问题 - 查询给了我 12 家餐厅(如在 DB 中),但每家餐厅都有 0 地址,但在 Datastore 中,每家餐厅至少有 2 个地址。
有没有人遇到同样的问题或知道解决方案?
java - 使用 Google 应用引擎数据存储加载枚举集合
我正在使用带有 Java 的 Goole 应用程序引擎数据存储,并尝试加载带有枚举列表的对象。每次我加载对象时,列表都是空的。对象是
枚举很简单
保存它的代码是
加载它的代码是
我可以使用http://localhost:8080/_ah/admin查看数据存储中的数据,并且可以看到我的列表已保存,但加载对象时它不存在。
据我所知,我使用 Eclipse 插件创建了我的项目,并且没有对数据存储设置进行任何更改。那么为什么我的枚举列表为空呢?
google-app-engine - JDO:引用另一个类“拥有”的实体集合
我有一个RecipeJDO,其中包含一个列表< IngredientJDO >。 RecipeJDO
“拥有”成分。这对我来说已经好几个星期了。现在我想介绍一个新类“ GroceryListJDO ”,它引用了各种食谱所拥有的成分。
当我尝试坚持一个新的时GroceryListJDO
,我得到以下信息:
似乎 和 之间存在成分的“所有权”RecipeJDO
问题GroceryListJDO
。
我可能会更改GroceryListJDO
为仅包含一个List<String>
充当 外键的IngredientsJDO
,但这违背了使用 ORM 的目的——我必须手动获取并附加我的 DAO 中的成分。
管理需要“附加”到多个容器 JDO 类的 JDO 集合的最佳方法是什么?
这是在 Google App Engine 上的 JDO,FWIW。
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)
关于我做错了什么有什么想法吗?