簡體   English   中英

EntityStoreException:不支持的屬性類型 ID 9

[英]EntityStoreException: Unsupported property type id 9

使用 Xodus 版本1.3.124並且數據庫拋出:

jetbrains.exodus.entitystore.EntityStoreException: Unsupported property type id 9
    at jetbrains.exodus.entitystore.tables.PropertyTypes.getPropertyType(PropertyTypes.java:56)
    at jetbrains.exodus.entitystore.tables.PropertyTypes.entryToPropertyValue(PropertyTypes.java:86)
    at jetbrains.exodus.entitystore.PersistentEntityStoreImpl.getPropertyValue(PersistentEntityStoreImpl.java:843)
    at jetbrains.exodus.entitystore.PersistentEntityStoreImpl.getProperty(PersistentEntityStoreImpl.java:827)
    at jetbrains.exodus.entitystore.PersistentEntity.getProperty(PersistentEntity.java:114)

盡管該財產已注冊:

@Override
  public PersistentEntityStore getPersistentEntityStore(String xodusRoot, String dir, boolean isReadOnly) {

    if(persistentEntityStoreCache == null) {
      persistentEntityStoreCache = buildPersistentEntityStoreCache();
    }
    PersistentEntityStore entityStore = persistentEntityStoreCache.get(xodusRoot + dir);
    if (entityStore == null) {
      Environment environment = getEnvironment(xodusRoot, dir);
      PersistentEntityStoreConfig config = new PersistentEntityStoreConfig();
      config.setManagementEnabled(false);
      config.setDebugSearchForIncomingLinksOnDelete(true);
      config.setRefactoringHeavyLinks(true);
      entityStore = PersistentEntityStores.newInstance(config, environment, "persistentEntityStore");
      PersistentEntityStore finalEntityStore = entityStore;
      entityStore.executeInTransaction(
              txn -> {
                finalEntityStore.registerCustomPropertyType(
                    txn, EmbeddedEntityIterable.class, EmbeddedEntityBinding.BINDING);
                finalEntityStore.registerCustomPropertyType(
                    txn, EmbeddedArrayIterable.class, EmbeddedEntityBinding.BINDING);
                persistentEntityStoreCache.put(xodusRoot + dir, finalEntityStore);
              });
    }
    PersistentEntityStore persistentEntityStore = persistentEntityStoreCache.get(xodusRoot + dir);
    return persistentEntityStore;
  }

這個屬性最初是用以下方式保存的:

metaDataHashMap.put("uniqueProperties", uProperties);
finalEntity.setProperty(metadataProperty, new EmbeddedEntityIterable(metaDataHashMap));

這里可能有什么問題?

我已經找到了問題的根本原因。

最初, EmbeddedEntityIterablecom.mybusiness.model.EmbeddedEntityIterable下,然后移至com.my-new-business.model.EmbeddedEntityIterable

這解決了問題。 然而,Xodus 應該有一個工具來替換或至少替換模型被移動的這種情況下的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM