Hibernate事务不能跨Servlet?

醉猫之原罪 2018-01-10 04:22:44
各路大神,麻烦看一下,实在搞不定了
1、一个简单的添加客户,然后返回所有客户列表的功能
2、只用了Hibernate 5.2.6。在Filter中去控制事务开启与提交,其它各层不考虑事务。每一个请求对应一个Hibernate session.
3、服务层实现了两个方法。一个是新增客户addUser,另一个是返回所有客户列表getAllUser。
4、web层有两个servlet,一个用来接收前端传来的客户资料,然后调用service层addUser方法进行保存。另一个调用service层getAllUser方法,并向前端返回所有用户列表。

5、如果在保存新客户servlet上完成保存后,请求转发至客户列表servlet,由客户列表servlet向前端返回所有客户列表。则出现两个问题:1)数据库写入非常慢(大致要7秒),前端页面呈现不受影响.2)前端的用户列表上没有新增客户.
6、如果把保存新客户和查询所有客户列表都在新增客户servlet上完成,然后直接给jsp显示,则没有上述问题.

这是怎么回事呢?有谁知道,麻烦解答一下.
...全文
161 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianfang 2018-01-10
  • 打赏
  • 举报
回复
2、只用了Hibernate 5.2.6。在Filter中去控制事务开启与提交,其它各层不考虑事务。每一个请求对应一个Hibernate session. 问题在这里,数据库事务应该放在服务层。 本来读操作不需要事务,你这么做,导致增加用户和读取全部用户在一个事务中,使用变的效率很低

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧