Как удалить Тип сущности с помощью Xodus? - PullRequest
0 голосов
/ 17 сентября 2018

Вот мой код для удаления всех сущностей для данного типа:

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

Вопрос:

  • Это правильный подход для удаления всех существующих сущностей для данного типа сущности?
  • Когда этот метод выполняется, все сущности действительно удаляются, но тип Enity находится там, как правильно удалить тип enity?

1 Ответ

0 голосов
/ 18 сентября 2018

Существует PersistentEntityStore#renameEntityType для переименования типа сущности как части общедоступного API.Чтобы вообще удалить тип сущности, вы можете использовать PersistentEntityStoreImpl#deleteEntityType.Он не является частью PersistentEntityStore api, но метод является общедоступным, и вы можете использовать его.

Также при удалении типа сущности не забывайте, что вам также необходимо очистить все ссылки, указывающие на сущности этого типа.

...