我们需要能够获得休眠会话的关联 java.sql.Connection
。其他连接都不起作用,因为此连接可能与正在运行的事务相关联。
如果 session.connection() 现在已弃用,我应该怎么做?
原文由 TraderJoeChicago 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们需要能够获得休眠会话的关联 java.sql.Connection
。其他连接都不起作用,因为此连接可能与正在运行的事务相关联。
如果 session.connection() 现在已弃用,我应该怎么做?
原文由 TraderJoeChicago 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果
session.connect()
现在已弃用,我应该怎么做?
您必须使用 Session#doWork(Work)
和 Work
API,如 Javadoc 中所述:
已弃用。 (计划在 4.x 中删除)。更换视需要而定;做直接 JDBC 的东西使用
doWork(org.hibernate.jdbc.Work)
;用于打开“临时会话”使用 (TBD)。
在 Hibernate 4.x 之前还有一些时间,但是,好吧,使用不推荐使用的 API 看起来像这样:
:)
更新: 根据 RE: [hibernate-dev] hibernate-dev 列表上的连接代理,弃用的最初意图似乎是阻止使用 Session#connection()
因为它被认为是/被认为是“糟糕”的 API,但它应该保留在那个时候。我猜他们改变主意了…
原文由 Pascal Thivent 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.1k 阅读
8 回答6.3k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.1k 阅读✓ 已解决
您现在必须使用工作 API:
或者,在 Java < 8 中: