问题标签 [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 - Hibernate vs JPA vs JDO - 各自的优缺点?
我熟悉 ORM 作为一个概念,几年前我什至在 .NET 项目中使用过 nHibernate;但是,我没有跟上 Java 中的 ORM 的主题,也没有机会使用这些工具中的任何一个。
但是,现在我可能有机会开始为我们的一个应用程序使用一些 ORM 工具,试图摆脱一系列遗留的 Web 服务。
我很难说出 JPA 规范、您从 Hibernate 库本身获得的内容以及 JDO 必须提供的内容之间的区别。
所以,我知道这个问题有点开放,但我希望得到一些意见:
- 各自的优缺点是什么?
- 你会为一个新项目推荐哪个?
- 是否存在某些情况下使用一个框架而不是另一个框架才有意义?
java - 使用 JDO/DataNucleus 将 java.util.Properties 持久化为序列化对象
Google AppEngine 文档说我可以像这样使用 JDO 持久化可序列化对象
但是如果我将它与属性一起使用
我明白了
DataNucleus Enhancer(1.1.0 版):类的增强
“ServletRegistration”类中的“initProps”字段已定义为 Map,但未指定键类型!
我可以用额外的注释来解决这个问题吗?
java - JDO - 更新对象
我正在尝试使用 Google App Engine 和持久选项 JDO。我想知道是否可以将瞬态对象映射到持久对象?或者使用瞬态对象来更新持久对象?
在编码示例中,我看到以下用于更新对象的代码:
但这不是我想要的,有人知道我是否可以像 JPA 那样更新整个对象:object.update();
所以我想要这样的东西:
java - DataNucleus:提交事务时如何自动执行操作?
考虑使用具有以下持久性结构的 DataNucleus 的应用程序:
你有一个类,它有两个属性,比如created (Date) 和lastUpdate (Date): 当要提交这个类的对象时,你如何自动用适当的值填充这些属性?适当的值将在将对象插入数据库时将created和lastUpdate都设置为当前时间,并在它发生更改时仅更新lastUpdate 。
java - JPOX JDO 和 Castor JDO 与 Hibernate 持久性的比较
这些框架(JPOX JDO 和 Cater JDO)的工作原理与 Hibernate 相似吗?他们是否使用配置数据以及反射和泛型的组合?有哪些主要的架构差异?
hibernate - Jdo/Hibernate 中的分离对象——它们到底有什么用?
有人可以向我解释在 Web 应用程序的上下文中使用分离对象有什么好处吗?AFAIK 它们仅在对象以某种方式超出事务的“词汇”范围时才有用,但通常在 Web 应用程序中,当您的事务结束时,您只需将对象发送到视图层,它们不会被重新附加。
据我所知,分离对象仅在您稍后要合并/重新附加它时才有用,而且我看不到与仅将对象直接更新到数据库相比的优势。
任何示例代码表示赞赏。
编辑:为了澄清起见,我试图了解分离对象与瞬态对象的优势(例如,用于数据库但以后无法重新附加的对象)。
google-app-engine - 对 *User* 类型的查询的 Google Datastore 问题
在这个问题上,我解决了查询 Google Datastore 以按用户(com.google.appengine.api.users.User)检索内容的问题,如下所示:
上面的工作正常 - 但经过一些混乱后,我意识到这种语法不是很实用,因为需要构建更复杂的查询 - 所以我决定手动构建我的过滤器,现在我得到了例如以下内容(其中过滤器通常作为字符串变量传入,但为了简单起见,现在是内联的):
显然,即使JDOQL 支持field = 'value'
这种语法并且它在其他字段(字符串类型和枚举)上也能正常工作,这也不起作用。另一个奇怪的事情是,查看应用引擎仪表板中的数据查看器,“作者”字段存储为用户类型,但值为“user@gmail.com”,然后当我将其设置为参数时(上面的情况很好)我将参数声明为一个字符串,然后传递一个用户(用户)的实例,该实例用一个简单的序列化(我猜)。toString()
有人知道吗?
java - 如何在多个参数上动态构建 JDO 查询
可以很容易地使用 JDO 语法来查询多个参数,如下所示:
使用过滤器以编程方式构建字符串很简单:
另一个带有 params 声明的字符串:
不是立即提出一个策略来执行查询,具体取决于过滤器中的哪些参数(并且已被声明),因此您最终会得到一些非常丑陋的临时级联 if-else 语句查询执行的可能排列(所有参数,只有第一个,只有第二个,第一个和第二个等......):
我确信这是一项常见的任务,并且其他人正在以更通用和更有效的方式进行。
有什么建议吗?
java - Java AppEngine:JDO还是JPA,如何选择?
为将在 Google AppEngine 上运行的 Grails 应用程序选择 JDO 或 JPA 的优缺点