点燃移除子对象失败
Ignite remove is failing for child object
在我们的产品中,我们使用 Ignite ClientCache 来缓存对象。我们使用 class 对象作为存储在缓存中的键。现在,当我创建另一个驱动器 class 对象并将其存储在 ClientCache 缓存中时。这里我在 Baseclass 缓存中添加了 drive class 对象,并且在我添加了一个子 class 对象之后,我更新了它的一些成员字段,然后才 removable。现在,当我在这样的驱动器 class 对象上调用 ClientCache.remove() 时,它找不到这样的键。
所以我的问题是如何提供自定义比较器,我已经尝试过 java equals() 和 hashcode() 函数覆盖,但它不起作用。
当满足以下所有条件时,Ignite 认为两个对象相等:
- 类型 ID 相同(相同 class)。
- 序列化表示(
byte[]
)相同。
Ignite 不使用标准 equals()
和 hashCode()
进行比较,因为数据库引擎对序列化数据进行操作。无法覆盖此行为。
在我们的产品中,我们使用 Ignite ClientCache 来缓存对象。我们使用 class 对象作为存储在缓存中的键。现在,当我创建另一个驱动器 class 对象并将其存储在 ClientCache 缓存中时。这里我在 Baseclass 缓存中添加了 drive class 对象,并且在我添加了一个子 class 对象之后,我更新了它的一些成员字段,然后才 removable。现在,当我在这样的驱动器 class 对象上调用 ClientCache.remove() 时,它找不到这样的键。 所以我的问题是如何提供自定义比较器,我已经尝试过 java equals() 和 hashcode() 函数覆盖,但它不起作用。
当满足以下所有条件时,Ignite 认为两个对象相等:
- 类型 ID 相同(相同 class)。
- 序列化表示(
byte[]
)相同。
Ignite 不使用标准 equals()
和 hashCode()
进行比较,因为数据库引擎对序列化数据进行操作。无法覆盖此行为。