我在HSqlDb之上使用Datanucleus JDO。
我想执行以下SQL语句来告诉HsqlDb将写入延迟设置为0:
“SET WRITE_DELAY 0”
有没有办法可以从JDO PersistenceManager或PersistenceManagerFactory执行此操作?
旁注:我尝试使用以下连接URL修改write_delay: JDBC:HSQLDB:文件:数据/ HSQLDB / dbbench; WRITE_DELAY =假
它不起作用。我调试了HsqlDb源代码,我仍然可以看到写入延迟设置为10秒。
答案 0 :(得分:1)
我想我找到了一个对我有用的解决方案:
public PersistenceManager getPersistenceManager() {
PersistenceManager persistenceManager =
_persistenceManagerFactory.getPersistenceManager();
JDOConnection dataStoreConnection =
persistenceManager.getDataStoreConnection();
Object nativeConnection = dataStoreConnection.getNativeConnection();
if(! (nativeConnection instanceof Connection) ){
return persistenceManager;
}
Connection connection = (Connection) nativeConnection;
try {
Statement statement = connection.createStatement();
statement.executeUpdate("SET WRITE_DELAY 0");
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
return persistenceManager;
}
答案 1 :(得分:1)
您可以在此示例中编写启动脚本dbbench.script,并将SQL放在那里。
请参阅:http://best-practice-software-engineering.ifs.tuwien.ac.at/technology/tech-hsqldb.html
答案 2 :(得分:0)
我想这个页面 http://www.datanucleus.org/products/accessplatform/jdo/datastore_connection.html 告诉所有需要的。不是吗?