Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayList不想在AppEngine HR数据库上持久化,如何修复?_Java_Google App Engine_Jdo_Datanucleus - Fatal编程技术网

Java ArrayList不想在AppEngine HR数据库上持久化,如何修复?

Java ArrayList不想在AppEngine HR数据库上持久化,如何修复?,java,google-app-engine,jdo,datanucleus,Java,Google App Engine,Jdo,Datanucleus,我正试图坚持和ArrayList,但它不起作用。一切 在本地[M/S db]非常好,但是当我部署它[HR]时,对象就可以了 不坚持。你知道为什么吗?这真的很奇怪,我找不到 解决方案 我将JDO与DataNucleus和Guice一起用于注入,下面是必需的代码: @Persistent(defaultFetchGroup = "true", serialized="true") private ArrayList<ArrayList<Long>> colonisations

我正试图坚持和ArrayList,但它不起作用。一切 在本地[M/S db]非常好,但是当我部署它[HR]时,对象就可以了 不坚持。你知道为什么吗?这真的很奇怪,我找不到 解决方案

我将JDO与DataNucleus和Guice一起用于注入,下面是必需的代码:

@Persistent(defaultFetchGroup = "true", serialized="true")
private ArrayList<ArrayList<Long>> colonisations = new
ArrayList<ArrayList<Long>>();
@Persistent(defaultFetchGroup=“true”,serialized=“true”)
private ArrayList colonisations=新建
ArrayList();
在用户级

另一个试图持久化数据的类:

@Inject
public Repository<User> userRepo;

...
...
MySession.get().getUser().getColonisations().add(colonisation);
...
...
Colonisation.this.userRepo.persist(MySession.get().getUser()); 
@Inject
公共存储库用户回购;
...
...
MySession.get().getUser().getColonisations().add(殖民);
...
...
colonization.this.userRepo.persist(MySession.get().getUser());
我从日志中得到的唯一提示是:

org.datanucleus.ObjectManagerImpl关闭:未完成的nontx更新
提交到数据存储时

是否在持久化时使用currentTransaction

我希望有更多关于这方面的信息,但在GAE中使用JDO从datanucleus中持久化和检索数据时,我遇到了类似的问题,我在使用

persistenceManager.currentTransaction().begin();
// persist and/or retrieve
persistenceManager.currentTransaction().commit();
我没有任何问题了


我希望我已经帮了一点忙。

使字段变脏解决了这个问题,因此DataNucleus看到它被更改了

JDOHelper.makeDirty(...)

顺便说一句,在做了任何修改后,我把我的列表弄脏了。