这是我的代码,用于删除给定类型的所有实体:
@Override
public boolean deleteEntities(String instance, final String storeName) {
final boolean[] success = {false};
final PersistentEntityStore entityStore = manager.getPersistentEntityStore(xodusRoot, instance);
try {
entityStore.executeInTransaction(new StoreTransactionalExecutable() {
@Override
public void execute(@NotNull final StoreTransaction txn) {
EntityIterable result = txn.getAll(storeName);
final boolean[] hasError = {false};
for(Entity entity : result) {
if(!entity.delete()) {
hasError[0] = true;
}
}
success[0] = !hasError[0];
}
});
} finally {
////entityStore.close();
}
return success[0];
}
问题:
答案 0 :(得分:1)
有PersistentEntityStore#renameEntityType
重命名实体类型作为公共api的一部分。要完全删除实体类型,可以使用PersistentEntityStoreImpl#deleteEntityType
。它不是PersistentEntityStore
api的一部分,但方法是公共的,您可以使用它。
此外,在删除实体类型时,请不要忘记还需要清除所有指向该类型实体的链接点。