实体持续多久?

Dra*_*gos 3 java jpa

我试图了解JPA的工作原理.据我所知,如果你持有一个实体,该对象将保留在内存中,直到应用程序关闭.这意味着,当我查找以前持久化的实体时,将不会对数据库进行查询.假设没有进行插入,更新或删除,如果应用程序运行的时间足够长,则其中的所有信息可能会持久化.这是否意味着在某些时候,我将不再需要数据库?

编辑

我的问题不在于数据库.我确信无法从应用程序外部修改数据库.我自己管理事务,所以数据一提交就会存储在数据库中.我的问题是:我提交后实体会发生什么?它们是否保存在内存中并像缓存一样?如果是这样,他们在那里待了多久?在我提交之后persist,我进行select查询.这个选择应该返回我之前持久化的对象.该对象是从内存中获取的,还是应用程序会查询数据库?

dar*_*ioo 5

并不是的.想一想.

您的应用程序可能不是唯一使用该数据库的东西.如果一个实体被持久存储并存储在内存中,那么你怎么能确定,一小时之后,它不会被其他方式改变?如果发生这种情况,您将拥有可能损害应用程序逻辑的陈旧数据.

将数据存储在内存中并希望一切都会好起来不会带来任何好处.这就是为什么存储在数据库中的数据是您的主要信息来源,您应该每次都查询它,除非您绝对确定数据子集不会改变.