问题标签 [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 投票
11 回答
113118 浏览

java - Hibernate vs JPA vs JDO - 各自的优缺点?

我熟悉 ORM 作为一个概念,几年前我什至在 .NET 项目中使用过 nHibernate;但是,我没有跟上 Java 中的 ORM 的主题,也没有机会使用这些工具中的任何一个。

但是,现在我可能有机会开始为我们的一个应用程序使用一些 ORM 工具,试图摆脱一系列遗留的 Web 服务。

我很难说出 JPA 规范、您从 Hibernate 库本身获得的内容以及 JDO 必须提供的内容之间的区别。

所以,我知道这个问题有点开放,但我希望得到一些意见:

  • 各自的优缺点是什么?
  • 你会为一个新项目推荐哪个?
  • 是否存在某些情况下使用一个框架而不是另一个框架才有意义?
0 投票
1 回答
1136 浏览

java - 使用 JDO/DataNucleus 将 java.util.Properties 持久化为序列化对象

Google AppEngine 文档说我可以像这样使用 JDO 持久化可序列化对象

但是如果我将它与属性一起使用

我明白了

DataNucleus Enhancer(1.1.0 版):类的增强

“ServletRegistration”类中的“initProps”字段已定义为 Map,但未指定键类型!

我可以用额外的注释来解决这个问题吗?

0 投票
1 回答
3201 浏览

java - JDO - 更新对象

我正在尝试使用 Google App Engine 和持久选项 JDO。我想知道是否可以将瞬态对象映射到持久对象?或者使用瞬态对象来更新持久对象?

在编码示例中,我看到以下用于更新对象的代码:

但这不是我想要的,有人知道我是否可以像 JPA 那样更新整个对象:object.update();

所以我想要这样的东西:

0 投票
1 回答
229 浏览

java - DataNucleus:提交事务时如何自动执行操作?

考虑使用具有以下持久性结构的 DataNucleus 的应用程序:

你有一个类,它有两个属性,比如created (Date) 和lastUpdate (Date): 当要提交这个类的对象时,你如何自动用适当的值填充这些属性?适当的值将在将对象插入数据库时​​将createdlastUpdate都设置为当前时间,并在它发生更改时仅更新lastUpdate 。

0 投票
1 回答
890 浏览

java - JPOX JDO 和 Castor JDO 与 Hibernate 持久性的比较

这些框架(JPOX JDO 和 Cater JDO)的工作原理与 Hibernate 相似吗?他们是否使用配置数据以及反射和泛型的组合?有哪些主要的架构差异?

0 投票
2 回答
1688 浏览

hibernate - Jdo/Hibernate 中的分离对象——它们到底有什么用?

有人可以向我解释在 Web 应用程序的上下文中使用分离对象有什么好处吗?AFAIK 它们仅在对象以某种方式超出事务的“词汇”范围时才有用,但通常在 Web 应用程序中,当您的事务结束时,您只需将对象发送到视图层,它们不会被重新附加。

据我所知,分离对象仅在您稍后要合并/重新附加它时才有用,而且我看不到与仅将对象直接更新到数据库相比的优势。

任何示例代码表示赞赏。

编辑:为了澄清起见,我试图了解分离对象与瞬态对象的优势(例如,用于数据库但以后无法重新附加的对象)。

0 投票
1 回答
806 浏览

google-app-engine - 对 *User* 类型的查询的 Google Datastore 问题

这个问题上,我解决了查询 Google Datastore 以按用户(com.google.appengine.api.users.User)检索内容的问题,如下所示:

上面的工作正常 - 但经过一些混乱后,我意识到这种语法不是很实用,因为需要构建更复杂的查询 - 所以我决定手动构建我的过滤器,现在我得到了例如以下内容(其中过滤器通常作为字符串变量传入,但为了简单起见,现在是内联的):

显然,即使JDOQL 支持field = 'value'这种语法并且它在其他字段(字符串类型和枚举)上也能正常工作,这也不起作用。另一个奇怪的事情是,查看应用引擎仪表板中的数据查看器,“作者”字段存储为用户类型,但值为“user@gmail.com”,然后当我将其设置为参数时(上面的情况很好)我将参数声明为一个字符串,然后传递一个用户(用户)的实例,该实例用一个简单的序列化(我猜)。toString()

有人知道吗?

0 投票
1 回答
6677 浏览

java - 如何在多个参数上动态构建 JDO 查询

可以很容易地使用 JDO 语法来查询多个参数,如下所示:

使用过滤器以编程方式构建字符串很简单:

另一个带有 params 声明的字符串:

不是立即提出一个策略来执行查询,具体取决于过滤器中的哪些参数(并且已被声明),因此您最终会得到一些非常丑陋的临时级联 if-else 语句查询执行的可能排列(所有参数,只有第一个,只有第二个,第一个和第二个等......):

我确信这是一项常见的任务,并且其他人正在以更通用和更有效的方式进行。

有什么建议吗?

0 投票
4 回答
14519 浏览

java - Java AppEngine:JDO还是JPA,如何选择?

为将在 Google AppEngine 上运行的 Grails 应用程序选择 JDO 或 JPA 的优缺点

0 投票
1 回答
4320 浏览

java - 为什么我在 Google App Engine 上使用 JDO 的查询中出现转换错误?

根据查询和索引文档,您可以有效地进行查询(据我所知):

但是,我收到以下错误results = (ArrayList<App>) q.execute();

有任何想法吗?