gpt4 book ai didi

java - 当调用 openSession 并且无法建立与 DB 的连接时,Hibernate 不会抛出异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:40 28 4
gpt4 key购买 nike

当我配置 hibernate 以连接到数据库并且由于某种原因连接失败时,我注意到它在构建工厂(这是可以接受的)和我调用 sessionFactory.openSession()(这是不太能接受)。更烦人的是,在我调用 sessionFactory.openSession() 之后,session.isConnected() 返回 true。 (这是完全不能接受的)。

到那一刻唯一告诉我它没有连接到数据库的提示是一个 WARN 日志条目,它由它在内部捕获并发送到记录器的 java.sql.SQLException 引起。除了创建一个伪事务来强制异常之外还有其他获取连接状态的方法吗? (也许配置中的一个选项说“不记录失败的连接尝试,但抛出 hibernate 异常)。我已经搜索但没有找到任何东西。非常感谢。

最佳答案

您使用的是什么连接池? Hibernate 的内置池 should not be used用于简单测试以外的任何事情。

Proxool , 另一方面,允许你做你想做的事:set test-before-use属性设置为 true,如果找不到或无法创建合适的连接,它将抛出异常。你甚至可以 listen to connection events如果你愿意的话。

关于java - 当调用 openSession 并且无法建立与 DB 的连接时,Hibernate 不会抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383028/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com