Я могу выполнить SQL-операторы непосредственно в среде JDO?

Я использую 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 секунд.

1
задан Carl Rosenberger 13 June 2010 в 12:44
поделиться

3 ответа

Думаю, я нашел решение, которое подойдет мне:

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
ответ дан 2 September 2019 в 23:48
поделиться

Вы можете написать сценарий запуска, в этом примере dbbench.script, и поместить туда SQL.

См .: http://best-practice-software-engineering.ifs.tuwien.ac.at/technology/tech-hsqldb.html

1
ответ дан 2 September 2019 в 23:48
поделиться

Думаю, эта страница http://www.datanucleus.org/products/accessplatform/jdo/datastore_connection.html рассказывает все необходимое. Нет?

0
ответ дан 2 September 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: