我是Datastore的新手,现在我正在使用Datastore和Objectify开发Gae应用程序。实体类的格式为
@Entity
public class MyClass1 {
public Key<MyClass2> field1;
@Id Long id;
and so on
}
MyClass2的格式为
@Entity
public class MyClass2 {
....
@Id public Long id;
@Index public String field2;
....
}
我有MyClass1的实体。我怎样才能获得field2的值? 如果我使用DatastoreService1.get(myclass1.field1),我会得到
method get(Key) in the DatstoreService is not applicable for arguments (Key<MyClass2>)
请帮帮我
答案 0 :(得分:1)
您的错误与问题无关,因此我假设您希望获得field1
的值,而不是field2
。
错误是因为DatastoreService
get()
方法需要com.google.appengine.api.datastore.Key
,但您传递的是com.googlecode.objectifyKey<T>
,这是一个Objectify键 - 它们不是一样。 Here are the docs
我建议您使用Ref<MyClass2>
,然后执行以下操作:
MyClass2 myClass2 = myClass1.field1.get();
(使用您的代码示例)。