我想在列表中搜索输入。该列表驻留在数据库中。我看到了两个选项 -
我喜欢第二个选项,因为它会更快。但是我对如何使列表与表同步感到困惑。
示例:我有一个列表L = [12,11,14,42,56]
我收到了一个输入:14
如果输入确实存在于列表中,我需要返回结果。该列表可以由其他应用程序更新。我需要让列表与表同步。
这里最优化的方法是什么以及如何使列表与数据库保持同步?
我的应用程序是否有任何方式可以通知表中的更改,以便我可以按需重新加载列表。
答案 0 :(得分:0)
我不会重新创建自己已经存在的东西的实现,而是利用Hibernate的二级缓存(2LC)和EhCache等实现。
通过使用2LC,您可以指定实体的生存时间到期时间,一旦它们到期,任何查询都会从数据库重新加载它们。如果实体缓存尚未到期,Hibernate将从2LC应用程序缓存而不是数据库中保存它们。
如果您使用的是Spring,可能还需要查看@Cachable
。它在组件/ bean层运行,允许Spring将结果集缓存到命名区域。有关详细信息,请参阅其文档。
答案 1 :(得分:0)
为了满足您的要求,您应该在一个地方控制读写,否则,数据总会有一些不同步的情况。