Java 按键删除实体,而不首先在app engine中获取它(使用JDO)
有没有一种方法可以删除实体而不必首先从数据存储中获取它?我假设我已经拥有实体的密钥或id。 我正在考虑类似于Java 按键删除实体,而不首先在app engine中获取它(使用JDO),java,google-app-engine,jdo,datanucleus,Java,Google App Engine,Jdo,Datanucleus,有没有一种方法可以删除实体而不必首先从数据存储中获取它?我假设我已经拥有实体的密钥或id。 我正在考虑类似于PersistenceManager上的getObjectById的东西 我能想到的最接近的方法是使用Query.deletePersistentAll()(如图所示)并指定一个仅依赖于键的查询,但我无法判断在删除实体之前是否要获取该实体 谢谢 编辑:我知道如何使用低级API以及python API来完成这项工作。我想知道是否有一种方法可以在JDO层中实现这一点。如何使用 我认为DataS
PersistenceManager
上的getObjectById
的东西
我能想到的最接近的方法是使用Query.deletePersistentAll()
(如图所示)并指定一个仅依赖于键的查询,但我无法判断在删除实体之前是否要获取该实体
谢谢
编辑:我知道如何使用低级API以及python API来完成这项工作。我想知道是否有一种方法可以在JDO层中实现这一点。如何使用
我认为DataService.delete(Key)
将完全满足您的需要
如果使用长as键,则需要先使用KeyMaker创建键
Key k = KeyFactory.createKey(Employee.class.getSimpleName(), "Alfred.Smith@example.com");
datanucleus回答了我关于以下方面的问题: 不是真的。问题是一个物体可以有关系,所以, 由于这些可能导致操作级联,因此通常必须 首先加载到内存中。唯一不需要的情况是 如果要删除的对象的类具有 没有关系 进入低级API并清除对象可能是,也可能不是 对相关对象产生影响。。。也许有人负责 它可以就此发表评论
我对JDO不太确定,但对于Python来说,只要稍加修改,这是可能的。您需要使用相同的键“创建”一个新实例,然后将其删除。它只会命中数据库一次
instance = Model(key=key_to_delete, required_property='dummy')
instance.delete()
我知道该功能存在于数据存储中,我正在尝试确定是否可以从JDO层中访问它。