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
当应用程序运行数小时或数天时会发生这种情况。
我读过的大部分内容都是关于如何在集成到 Spring 或类似的东西时使用 Hibernate。因此,每个 Web 请求都会启动一个新线程,如果该线程终止,它只会影响该一个 Web 请求。但是对于一个独立的Java应用程序,我们应该如何处理呢?