Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CQEngine是否支持事务更新?_Java_Cqengine - Fatal编程技术网

Java CQEngine是否支持事务更新?

Java CQEngine是否支持事务更新?,java,cqengine,Java,Cqengine,我希望在一些底层资源的堆镜像上有一个可查询的对象。当使用索引不在我们控制之下的类(*)时,我们如何实现事务性更新(如果读卡器由于remove+add语义而丢失数据,那么并发性又有什么意义呢!) (*)TransactionalIndexedCollection坚持破坏类型的equals方法,以便等效对象不再是equals() 此外,提供的equals方法涵盖“所有字段”而不是“主键字段”,因此会导致重复。如何使用我自己的PK创建一个原子可更新的集合?如果您想用于原子更新,您必须遵循它的指导,了解

我希望在一些底层资源的堆镜像上有一个可查询的对象。当使用索引不在我们控制之下的类(*)时,我们如何实现事务性更新(如果读卡器由于remove+add语义而丢失数据,那么并发性又有什么意义呢!)

(*)
TransactionalIndexedCollection
坚持破坏类型的
equals
方法,以便等效对象不再是
equals()

此外,提供的
equals
方法涵盖“所有字段”而不是“主键字段”,因此会导致重复。如何使用我自己的PK创建一个原子可更新的集合?

如果您想用于原子更新,您必须遵循它的指导,了解如何在存储在其中的对象上实现
equals()
hashCode()

但是,不需要将不直接控制的对象存储在索引集合中。例如,您可以编写一个将存储在集合中的包装器对象,这将根据指南实现
equals()
hashCode()
。这样,您就不需要修改不控制的对象


您可以编写属性,以便在给定包装器对象的情况下,它们实际上从内部对象读取字段或调用getter方法。

Hi。在发布之前,我读了很多书,做了很多实验,我很尊重它,它做什么和不做什么都有很好的文档记录。我想这样可能会引起你的注意(-1:)!我没有使用包装器对象,因为它感觉像是CQE应该从我手中拿走的工作。我有几十个非常广泛和可变的对象,需要包装(代理?),所以这感觉不可伸缩或支持。如果发生更新(不是单独的add()或remove()),我目前正在使用StampedLock完全重做查询。