2

我有一个 Java Web 应用程序,它使用 Hibernate 将数据存储到数据库中并检索它们。

我目前使用的策略是在启动时将数据库中的所有内容加载到应用程序中,并在用户与应用程序交互时将它们保存/更新到数据库中。

我还做的是跟踪每个用户的交易历史,作为业务逻辑的一部分。(所以这个交易历史都是在应用程序启动时加载的)。

我可以看到的问题是我不应该为所有用户加载所有交易历史记录,因为如果有很多交易历史记录,而用户可能不一定需要查看它们,那么这可能会占用大量内存用完了,所以效率不高。

我想知道是否有类似于 PHP 脚本可以做的事情,即仅在用户请求查看事务历史记录时才查询数据库,因此它不使用服务器资源。(除了查询数据库)或者关于我现在面临的问题有什么建议/评论。

谢谢你。

4

2 回答 2

0

为什么不为每个请求查询休眠状态并在响应后释放?这是一种常见的方法。

于 2012-01-04T07:12:56.257 回答
0

当您需要一条给定的信息时查询 Hibernate,并让 Hibernate 管理将其放回数据库。这将允许 Hibernate 管理缓存。

注意,使用 Hibernate 时,应该让 Hibernate 完全管理数据。不要使用原始 SQL 自己添加或更改数据。

如果您使用的是现代容器,则应考虑迁移到 JPA,因为它是 Java EE 容器中的标准,让您在需要扩展时更加灵活。JPA 与 Hibernate 非常接近,但它是一种 API,而不是一种实现,因此您有多个可供选择。

于 2012-01-04T07:14:03.183 回答