【发布时间】:2011-04-07 13:50:13
【问题描述】:
我有一个食谱。每个食谱都有一个图像。所以我的实体看起来像
@PersistenceCapable
public class Recipe {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private MyImage myImage;
当我第一次创建食谱时,效果很好,图像是 也添加了,我可以查看它。但是,当我去更新它时 作为
PersistenceManager pm = PMF.get().getPersistenceManager();
Recipe r = pm.getObjectById(Recipe.class, recKey);
try {
r.setImage(newImage);
} finally {
pm.close();
}
新图像已添加到数据存储中,但是当我尝试获取它时 从食谱中,食谱仍然指向我的旧图像 数据存储。这是正常的吗?我该如何解决这个问题?
这是我的 jdoconfig.xml 文件的内容
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
<persistence-manager-factory name="transactions-optional">
<property name="javax.jdo.PersistenceManagerFactoryClass"
value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>
<property name="javax.jdo.option.ConnectionURL" value="appengine"/>
<property name="javax.jdo.option.NontransactionalRead" value="true"/>
<property name="javax.jdo.option.NontransactionalWrite" value="true"/>
<property name="javax.jdo.option.RetainValues" value="true"/>
<property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
</persistence-manager-factory>
</jdoconfig>
【问题讨论】:
-
你有没有想过这个问题?我有同样的问题。希望赏金会有所帮助。
-
@Lumpy,不幸的是,我通过完全抛弃拥有关系以支持无拥有关系来解决此问题。我在网上找不到任何帮助,而且这里的声誉也没有帮助。
标签: java google-app-engine jdo