在hibernate中使对象保持最新

在hibernate中使对象保持最新,hibernate,Hibernate,我有大约300K个对象,表示表上相同数量的行。因为加载这个数量的数据需要一段时间。我需要把这些东西放在RAM上。我想知道Hibernate是否有一种方法可以在数据库中更改这些对象后自动在RAM中保持更新 有什么办法可以这样做吗 在, 这是否意味着,如果另一个客户端更改了数据库上的此对象,只要会话未关闭,这会反映在我的RAM上的对象上吗?我相信Hibernate引擎的脏检查将利用此功能。任何ORM引擎都需要一种方法来保持实体更新。不,不会反映,如果您指的是会话,因为这是一个工作单元,通常是短暂的。

我有大约300K个对象,表示表上相同数量的行。因为加载这个数量的数据需要一段时间。我需要把这些东西放在RAM上。我想知道Hibernate是否有一种方法可以在数据库中更改这些对象后自动在RAM中保持更新

有什么办法可以这样做吗

在,


这是否意味着,如果另一个客户端更改了数据库上的此对象,只要会话未关闭,这会反映在我的RAM上的对象上吗?

我相信Hibernate引擎的脏检查将利用此功能。任何ORM引擎都需要一种方法来保持实体更新。

不,不会反映,如果您指的是
会话
,因为这是一个工作单元,通常是短暂的。 您可以使用二级缓存,有不同类型的提供程序支持一些机制来删除过时的对象并从数据库获取新版本


当您在会话(Get)中从DB加载一个实体时,hibernate会将其缓存在一级缓存中,如果您稍后在相同会话中请求相同的id,则会获得对相同对象的引用(如果已更改,则无DB调用无检查)。

脏检查是什么意思?检查此@multiplayer1080 Yes我也对该问题感兴趣。我一直在阅读有关它的文章,发现有一种维护RAM更新的常用方法:在ScheduledExecutorService中使用“refresh”方法。
Persistent - a persistent instance has a representation in the database and an `identifier value. It might just have been saved or loaded, however, it is by definition in the scope of a Session. Hibernate will detect any changes made to an object in persistent state and synchronize the state with the database when the unit of work completes. Developers do not execute manual UPDATE statements, or DELETE statements when an object should be made transient.`