google-app-engine - Datanucleus GAE 拥有的关系不起作用
问题描述
在按照https://cloud.google.com/appengine/docs/standard/java/tools/migrate-maven中描述的指南将项目迁移到云 sdk 时,我必须升级一些 DataNucleus 依赖项,这会导致问题。DataNucleus 不会为数据持久化预迁移正确加载单向拥有的单对多关系。获取关系返回 null。数据的持久化方式似乎发生了某种变化。
如果我持久化一个新实体,则会在表中添加一列,其中包含关系信息。获取这些新持久化的实体之一,会给出正确的结果。
是否可以在不迁移数据的情况下升级 DataNucleus 版本?是否需要特定的注释或什么?
迁移前使用的罐子:
- 数据核-jpa-1.1.5
- datanucleus-core-1.1.5
- datanucleus-appengine-1.0.10.final
现在使用的依赖:
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>3.1.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jdo</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>com.google.appengine.orm</groupId>
<artifactId>datanucleus-appengine</artifactId>
<version>2.1.2</version>
</dependency>
关系代码片段:
@Persistent(defaultFetchGroup="true", dependentElement="true")
@Extension(vendorName="datanucleus", key="comparator-name",
value="be.coco.shared.quantity.Quantity")
private SortedSet<Quantity> quantities = new TreeSet<Quantity>();
解决方案
推荐阅读
- angular - 角度材料:更改选项组的背景颜色不起作用
- sql - Amazon Redshift 使用 COPY 命令仅从 JSON 中获取 1 行
- node.js - 一些 axios.get 请求失败并显示“请求失败,状态码 404”
- amazon-web-services - 如何加密并安全存储和传输 SSH 的私钥
- dojo - IBM Navigator:ecm/widget/listView/ContentList 带复选框
- json - 根据子对象中是否存在条目进行过滤
- mongodb - Mongoose Bulkwrite:nModified 的触发器
- kendo-ui - 如何为十六进制颜色代码自定义 Kendo UI 编辑器?
- ssms - 是否不再可以使用 SSMS 编写用户和权限脚本?
- sql - postgresql 查询结果使用 where 条件另一个查询