由Hibernate抛出的异常未经检查,从我在其他地方看过的内容看来,它们似乎不应被捕获到代码中。但是,这意味着当例如发生临时数据库错误时,它发生的线程死亡,我们的应用程序变得无法响应。应该怎么做?发生如何处理独立Java应用程序中的Hibernate异常
例例外:
javax.persistence.PersistenceException
Caused by: org.hibernate.exception.GenericJDBCException: could not insert
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
当应用程序已经运行了几个小时或几天会出现这种情况。
我读过的大部分内容都是关于如何将Hibernate集成到Spring或类似应用程序时讨论的。因此,每个Web请求都会启动一个新线程,并且如果该线程死亡,它只会影响该Web请求。但是对于独立的Java应用程序,我们应该如何处理它?
感谢您的快速解答。我现在的做法是捕获PersistenceException并抛出一个PersistenceCheckedException(我自己的类),然后根据正在做什么处理它。要么忽略它(如果数据库插入不重要)或放弃数据库插入(并且客户端可以再试一次)。这听起来不错吗? – GreatFire