java - 有状态 session bean 与持久实体

标签 java persistence java-ee-6 stateful-session-bean

有状态 session bean 通常通过实现购物车来说明。来自 Java EE 之外,我倾向于使用持久模型实体处理这种状态:带有产品和数量的 ShoppingCart 对象。这样,我的状态与所有其他状态一起由数据库维护,而不是由应用程序服务器维护。

与“普通”持久性相比,有状态 session bean 设计有哪些技术优势?基于 Java EE 的 Web 应用程序中的购物车是否确实通常使用 SFSB 编写,或者像其他系统一样只是通过更精细的领域建模来编写?

最佳答案

有几种方法可以实现购物车。 SFSB 和数据库持久性之间的主要区别在于持久性:)

有状态 session bean 只会在 session 期间“保留”数据。因此,如果用户 session 变为非 Activity 状态(例如,在 30 分钟不活动之后),购物车将被重置

由于数据库持久化,购物车将被永久存储,所以如果用户的购物车已装满,那么在 6 个月内不访问网上商店,再次访问时,购物车仍将装满

我认为通常使用第一种解决方案,因为涉及非内存数据库不是存储 volatile 数据的好主意。对于真正不需要长期持久化的数据,会有大量的硬盘I/O开销

关于java - 有状态 session bean 与持久实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369787/

相关文章:

java - 配置 JPA 将所有枚举映射到字符串?

java - 如何为 Weblogic 10.3.6 启用 Java Persistence 2.0

java - 如何预览图像而不将其保存到文件系统?(JSF 2.0)

jakarta-ee - 什么是焊接,JSR-299?

java - 将结果集中的行插入到不同的数据库-Jdbc

java - 适用于所有 Web 应用程序的全局过滤器

java - 如何在 Java 中存储(和读取)大型数组/映射/其他内容?

eclipse - 无法从驱动程序 [null]、用户 [null] 和 URL [null] postgres 获取连接

java - 更改主题导致双操作栏故障

oracle - Hibernate + oracle 序列 + 触发器