Я использую Datanucleus JDO сверху HSqlDb.
Я хотел бы выполнить следующий SQL-оператор, чтобы сказать HsqlDb устанавливать задержку записи с 0:
"НАБОР WRITE_DELAY 0"
Существует ли способ, которым я могу сделать это от JDO PersistenceManager или PersistenceManagerFactory?
На заметке на полях: Я попытался изменить write_delay при помощи следующего URL соединения: jdbc:hsqldb:file:data/hsqldb/dbbench; write_delay=false
Это не работало. Я отладил источники HsqlDb, и я мог все еще видеть, что запись задержала быть установленным на 10 секунд.
Думаю, я нашел решение, которое подойдет мне:
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;
}
Вы можете написать сценарий запуска, в этом примере dbbench.script, и поместить туда SQL.
См .: http://best-practice-software-engineering.ifs.tuwien.ac.at/technology/tech-hsqldb.html
Думаю, эта страница http://www.datanucleus.org/products/accessplatform/jdo/datastore_connection.html рассказывает все необходимое. Нет?