问题标签 [datanucleus]

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 投票
2 回答
647 浏览

java - 实体组

我正在用谷歌应用引擎进行一些试验,并且缺少事务 di 框架。我正在尽我所能地实现它,但我一次又一次地遇到相同的异常:无法在单个事务中对多个实体组进行操作。找到了两个元素...我已经阅读了文档(http://code.google.com/appengine/docs/python/datastore/keysandentitygroups.html#Entity_Groups_Ancestors_and_Paths),但我似乎无法理解它们的含义。基本上我想要做的是:

我有一个对象列表。我想检查它们是否已经在数据库中。如果是,我将检查它们是否相等,如果不相等,则更新托管实例。否则我会坚持实体。在我的对象循环(尚未持久化的对象)中,我使用 EntityMananger.find() 通过 Id 查找实体。第二次出现错误。

我习惯于使用 spring/hibernate(JPA) 或 EJB3 环境,我以前从未见过这种情况。谁能给我一个简单的解释,为什么我不能在同一个交易中找到 2 个相同类型的实体?

不是在寻找如何,而是在寻找为什么......

0 投票
1 回答
55953 浏览

java - JPA 中的多个唯一约束

有没有办法使用 JPA 指定在不同的列集上应该有多个唯一约束?

我已经看到了特定于休眠的注释,但我试图避免特定于供应商的解决方案,因为我们仍在休眠和数据核之间做出决定。

0 投票
11 回答
121910 浏览

java - 使用 JPA 指定索引(非唯一键)

您如何定义一个字段,例如email使用 JPA 注释具有索引。我们需要一个非唯一的键,email因为每天有数百万次对该字段的查询,而且没有键它有点慢。

我已经看到了特定于休眠的注释,但我试图避免特定于供应商的解决方案,因为我们仍在休眠和数据核之间做出决定。

更新:

从 JPA 2.1 开始,您可以这样做。请参阅:此位置不允许使用注释 @Index

0 投票
2 回答
3396 浏览

java - 定义独立于数据库的 JPA 对象 uid

事实证明,以下示例在使用 mysql 5.x 时有效,但在使用 oracle 10g 数据库时无效。

有没有办法定义一个独立于数据库技术的唯一标识符字段?

我已经在休眠中对此进行了测试,只有在使用 Oracle 时才会出现以下异常:

0 投票
1 回答
143 浏览

java - DataNucleus GAE JPQL 是否与 JPA1 标准不同?

我认为这将是一个有效的查询,但后来我得到:

表达这个查询的正确方法是什么?

0 投票
1 回答
3000 浏览

postgresql - 如何使用 Datanucleus + PostgreSQL 配置 Google Web Toolkit 应用程序

我使用 GWT 创建了一个应用程序并支持 Google Datastore,但现在我正试图将我的应用程序移动到我自己的服务器上,并且我还试图将我的应用程序与 Google App Engine 和 Datastore 分离。

更准确地说:我想停止使用 Google Datastore 并开始使用 JDO 和 Datanucleus 但使用 PostgreSQL(或其他关系数据库)。我尝试在 Datanucleus.org 中搜索,但没有可供我使用的简单教程。

请问,有人可以帮我吗?

非常感谢你!=)

0 投票
1 回答
59 浏览

java - 在 JDO 中使用集合

我有一个模型,其中包含一个 java.util.Set 对象作为成员。如何使用 JDO 坚持这一点?具体来说,如何在 .jdo 文件中定义 XML?

0 投票
2 回答
3362 浏览

java - 如何使用 JDO(DataNucleus) 更新和删除数据?

我已经使用 apache.JDO /w DataNucleus 建立了一个小项目。我可以在没有任何问题的情况下保存数据,但是在尝试更新或删除它们时我卡住了。

场景如下:

  1. 我创建一个对象并坚持它,它得到和 id
  1. 我关闭 PersistenceManager
  2. 在应用程序中,我修改了我的对象(瞬态)
  3. 我尝试再次持久化(id 字段相同),但不是更新而是创建一个新对象

在 Google App Engine 中,同样的场景给了我一个更新(预期的结果 - 见下文)。

我还将给你一个小代码示例来举例说明我的问题:

我希望输出是:

但相反,它给了我:

关于我做错了什么的任何建议?(顺便说一句,我使用非事务性 RW,启用了 RetainValues)

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 回答
2693 浏览

java - JPA 查询 toString

我有一个在 Google App-Engine 数据存储上执行的 JPA 查询。
我正在使用参数构建查询。
输入所有参数后,我希望查看查询字符串。

也就是说,我希望查看数据存储正在执行的实际查询。
这甚至可能吗?它真的会帮助我调试。

为了解决这个问题,假设以下查询:

如果System.out.println(SomeObj)打印 'SELECT FROM MyClass C WHERE C.field = 17' 那么问题就解决了。

大卫