下面是我的场景:我的应用程序开始一个事务,插入/更新,然后调用一个 Web 服务。Web 服务可能需要很长时间来处理请求。有没有办法在我的休眠层中为我的会话/事务配置超时,以便我可以优雅地关闭会话。PS - 或者,我也可以为我的 Web 服务调用配置超时。假设我没有这种自由。有什么我可以在 Hibernate 中做的,还是我需要编写自己的自定义逻辑(使用线程连接结构)来实现这些
问问题
13554 次
1 回答
3
您可以在特定查询级别设置超时,或者如果您使用 JPA 的 EntityManager,您可以添加查询提示。
理论是 Hibernate 默认使用乐观锁定(如果数据库事务隔离级别符合),因此记录永远不会被锁定反对写入或读取。因此,即使是持久的事务也不应该严重损害性能。
如果您使用悲观锁,您可以在 Hibernate Session 中为它们设置超时。看看Session.LockRequest。
于 2012-05-11T13:21:40.277 回答