在多个交易中保持搜索结果一致

Ami*_*ari 6 java sql oracle

我必须实现Java CRUD应用程序的要求,即使用户希望执行影响返回行匹配条件的操作,也希望保持搜索结果的完整性.

困惑?好.让我举个熟悉的例子.在Gmail中,如果您对未读电子邮件进行高级搜索,则会显示匹配结果列表.单击条目,然后返回搜索列表.发生的事情是您刚刚读取了该条目,但它并未从原始结果集中消失.只有该行已从粗体更改为正常.

我需要实现完全相同的行为,但应用程序的设计方式是首先保留任何事务,然后UI重新查询数据库以保持同步.应用程序的复杂性和数据库的大小使我无法仅对匹配行进行简单的内存缓存,并在db和内存中进行更改.

我正在考虑通过在Oracle数据库中创建一个中间表来解决数据库级别的问题,该中间表包含指向匹配记录的指针并仅重新查询这些记录以使UI与数据保持同步.有任何想法吗?

Ada*_*sch 4

在 Oracle 中,如果打开游标,则该游标的结果是静态的,无论另一个事务是否插入游标中出现的行,或者更新或删除游标中确实存在的行。

那么,如果您希望结果与打开游标时保持一致,则面临的挑战是不要关闭游标。