我有一个shutdownhook,它在进程终止时执行。但是,程序对 h2 数据库所做的更改不是持久的。只有在提交后让关闭线程等待一段时间,当我再次分层时,我才会看到数据库中的变化。
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
// H2 db add row, commit and close
Thread.sleep(1000); // in try/catch
System.out.println("Shutdown complete");
}
}
仅使用sleep
,我将在下次连接到数据库时看到更改。
有人知道如何在进程终止之前等待 H2 数据库完成操作吗?我想避免Thread.sleep()
随机时间...