Возможно ли иметь запросы на чтение в Datanucleus без создания транзакций?Я хотел бы иметь неблокирующее грязное чтение в моем приложении, но даже без создания транзакций я вижу это в журналах postgre.Установка свойства "datanucleus.NontransactionalRead" в значение true не помогает.
entityManager = entityManagerFactory.createEntityManager();
Query query = entityManager.createNativeQuery("select * from managers where department_id='1' and account_id = '1'", User.class);
entityManager.close();
Вот часть postgresql-9.5-main.log
2018-12-13 14:43:42 user@test LOG: execute <unnamed>: SHOW TRANSACTION ISOLATION LEVEL
2018-12-13 14:43:42 user@test LOG: execute <unnamed>: BEGIN 2018-12-13 14:43:42 user@test LOG: execute <unnamed>: select * from managers where department_id='9' and account_id = '9'
2018-12-13 14:43:42 user@test LOG: execute S_2: COMMIT
Возможно, это просто недоразумениеили я неправильно сформулировал свой вопрос.
Я копался в библиотеке драйверов postgresql и вижу, что после нескольких вызовов DataNucleus управление переходит к HikariProxyPreparedStatement, а затем к PostgresqlExecutorImpl.Существует вызов QueryExecutorImpl.sendQueryPreamble (), который вызывает sendOneQuery () с beginTransactionQuery в качестве параметра.Так что beginTransactionQuery - это SimpleQuery с только что "BEGIN" строкой sql.Я предполагаю, что это открытие транзакции.
Я прав?Если так, как избежать создания транзакции?Если нет, поправьте меня.