2011-12-22 167 views
1

我在一个java项目中使用hibernate来映射到oracle数据库。 我试图处理异常时授予访问数据库。但是hibernate似乎并不例外,只是永远呆在那里。 任何人都可以给我一些建议吗? hibernate如何处理异常? 非常感谢你和圣诞快乐:)当数据库连接失败时,Hibernate不会引发异常

+1

请尝试更具体一点:你的设置是什么?你使用像Spring这样的应用程序框架吗?你在哪个数据库上运行(哪个JDBC驱动程序)?你的数据源配置是怎样的? Hibernate日志里有什么?等等,即使关于你的问题的最基本的信息丢失了,你也不能指望任何帮助。 – tscho 2011-12-22 23:47:57

+0

hibernate会为这种情况包装一个SQL异常,看起来像jdbc在你的情况下没有看到连接的问题。 – aishwarya 2011-12-24 01:05:58

回答

0

如果Hibernate没有抛出异常,那么数据库驱动程序不会抛出异常,这意味着你的连接并没有真正失败。如果它只是“永远停留在那里”,就像你说的那样,那么它几乎肯定只是在等待执行完成的声明。一般而言,JDBC驱动程序和数据库只会在给定的语句中坐下来等待/流失,而您的应用程序空闲,等待返回的东西。当你看到这个问题时,你应该检查数据库上正在执行的语句,并着手优化它们。

+0

谢谢你的回答。但我没有做任何查询。它停留在连接到数据库的步骤上。 – 2012-01-03 17:40:56

+0

我不相信Hibernate会在你使用会话做某事之前获得连接。尝试发布堆栈跟踪。 – 2012-01-04 15:40:21