如何使用 Xodus 删除实体类型?

How to delete Entity Type with Xodus?

这是我删除给定类型的所有实体的代码:

@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]; }

问题:

PersistentEntityStore#renameEntityType 重命名实体类型作为 public api 的一部分。要完全删除实体类型,您可以使用 PersistentEntityStoreImpl#deleteEntityType。它不是 PersistentEntityStore api 的一部分,但方法是 public,您可以使用它。

此外,当您删除实体类型时,请不要忘记您还需要清除指向该类型实体的所有链接。