我正在将一个简单的 Java 应用程序部署到 Google App Engine。
我有一个简单的 JPA 实体,其中包含一个 key 作为我生成的 ID。
import javax.persistence.*;
@Entity
public class MyEntity
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private com.google.appengine.api.datastore.Key key;
...
一旦我持久化了这个对象。我可以像这样查看 key 的 ID...
long id = entity.getKey().getId();
您知道我如何使用相同的 ID 取回我的实体吗?像这样的……
Query query = em.createQuery("SELECT e FROM MyEntity e WHERE e.key.id = :myId");
query.setParameter("myId", id);
上述方法无效。我知道我可以通过传入 key 作为参数来取回它,但我想知道我是否可以改用长 ID。
最佳答案
找到解决方案,使用KeyFactory创建一个Key并传入ID。然后在 Key 上查询。
Key key = KeyFactory.createKey(MyEntity.class.getSimpleName(), id);
关于java - 使用 Key.Id 查询 Google App Engine 数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3631464/