Java jetbrains.exodus.ExodusException:不支持的可比较值类型

Java jetbrains.exodus.ExodusException:不支持的可比较值类型,java,xodus,Java,Xodus,尝试使用自定义可比较类型持久化可比较集时: ComparableSet时间范围=新的ComparableSet(); LocalDayTimeRange sundayRange=新的LocalDayTimeRange( LocalDayTimeRange.DAY.SUNDAY, LocalTime.parse(“01:00”), 解析(“23:00”); LocalDayTimeRange mondayRange=新的LocalDayTimeRange( LocalDayTimeRange.DA

尝试使用自定义可比较类型持久化
可比较集
时:

ComparableSet时间范围=新的ComparableSet();
LocalDayTimeRange sundayRange=新的LocalDayTimeRange(
LocalDayTimeRange.DAY.SUNDAY,
LocalTime.parse(“01:00”),
解析(“23:00”);
LocalDayTimeRange mondayRange=新的LocalDayTimeRange(
LocalDayTimeRange.DAY.MONDAY,
LocalTime.parse(“07:00”),
解析(“08:00”);
它抛出以下错误:

jetbrains.exodus.ExodusException: Unsupported Comparable value type: class com.myapp.properties.LocalDayTimeRange

    at jetbrains.exodus.bindings.ComparableValueType.getPredefinedType(ComparableValueType.java:91)
    at jetbrains.exodus.bindings.ComparableSetBinding.writeObject(ComparableSetBinding.java:59)
    at jetbrains.exodus.entitystore.tables.PropertyTypes.writePropertyValue(PropertyTypes.java:120)
    at jetbrains.exodus.entitystore.tables.PropertyTypes.propertyValueToEntry(PropertyTypes.java:109)
    at jetbrains.exodus.entitystore.PersistentEntityStoreImpl.setProperty(PersistentEntityStoreImpl.java:868)
    at jetbrains.exodus.entitystore.PersistentEntity.setProperty(PersistentEntity.java:120)
鉴于,其注册:

entityStore.executeInTransaction(txn->{
((PersistentEntityStore)txn.getStore()).registerCustomPropertyType(
txn、LocalDayTimeRange.class、LocalDayTimeRangeBinding.BINDING);
})

我的设置可能有什么问题?

另外,当保存自定义可比时,
localdaytimerage
不在
ComparableSet
中,它可以工作,因此我假设问题出在
ComparableSet
感谢您的报告。@vyacheslav lukianov没问题,我一直在挖掘代码,看看问题的根源是什么,我看到ComparableSet被配置为只接受预定义的类型。看代码,这似乎是因为将类解析为实际绑定,该绑定被放入数组中进行查找,但不确定原因,可能是类的类型id和绑定本身无法从该特定位置访问。因此,如果可以从该部分检索绑定,则可能无需预定义可接受的类型。因此,在保存自定义可比时,
localdaytimerage
不在
可比表集中它可以工作,因此,我假设问题出在
可比集上
谢谢您的报告。@vyacheslav lukianov没问题,我一直在挖掘代码,从我看到的问题根源来看,可比集配置为只接受预定义类型。看代码,这似乎是因为将类解析为实际绑定,该绑定被放入数组中进行查找,但不确定原因,可能是类的类型id和绑定本身无法从该特定位置访问。因此,如果可以从该部分检索绑定,则可能不需要预定义可接受的类型