我正在使用Google应用引擎中的课程
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
public class A {
@PrimaryKey
@Persistent
String pk;
@Persistent(dependent = "true")
private B b;
.
.
.
}
和
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import com.google.appengine.api.datastore.Key;
public class B {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String name;
.
.
.
}
我有一个创建对象的代码:
{
PersistenceManager pm = PMF.get().getPersistenceManager();
A a = new A("pk1");
a.setB(new B(...));
try {
pm.makePersistent(a);
} finally {
pm.close();
}
}
以后相同的代码更新对象,使用与A的主键相同的String。
{
PersistenceManager pm = PMF.get().getPersistenceManager();
A a = new A("pk1");
a.setB(new B(...));
try {
pm.makePersistent(a);
} finally {
pm.close();
}
}
由于我使用'@Persistent(dependent =“true”)'我期望在数据存储区中以一个A对象和一个B对象结束,但我找到一个A对象和B对象作为时间的数量这段代码运行了。
我哪里错了? 谢谢, 利
答案 0 :(得分:0)
期望GAE的数据存储区是关系数据库是错误的。它是一个键值存储,没有级联删除的概念。