我尝试使用Hibernate使用一系列SQL插入语句来恢复HSQL数据库。不会抛出任何错误,并且在循环遍历所有语句之后,数据似乎在数据库中。问题是我关闭应用程序并重新启动后,数据丢失。我可以从会话中查询它,直到我关闭它。这就是我正在做的事情:
Session session = sessionFactory.openSession
try {
Transaction transaction = session.beginTransaction();
if (insertStatement != null && !insertStatement.isEmpty()) {
Query q = session.createSQLQuery(insertStatement);
q.executeUpdate();
}
transaction.commit();
session.flush();
} catch (Exception e) {
e.printStackTrace();
}
它似乎并不复杂,似乎确实有效,至少在我关闭了与数据库的连接之前。我已经检查过它在恢复过程中连接的HSQL数据库,首先我首先加载应用程序,它是一样的。我错过了哪些可以防止这种情况持续存在?
答案 0 :(得分:0)
您已添加hsqldb.log_data=false
以防止记录数据更改。
使用此设置,必须显式执行SHUTDOWN命令才能保留数据。禁用数据更改日志记录时别无选择。