eclipselink.read-only и границы транзакций

Я использую EclipseLink в качестве поставщика JPA. Когда я использую следующий код для объекта запроса:

myQuery.setHint("eclipselink.read-only", "true");

Запрос выполняется на другом соединении, отличном от используемого исходным EntityManager, и возвращает неправильные результаты.
Имеет ли смысл установка запроса только для чтения, чтобы EclipseLink запускал его на другом соединении? (Я использую пул соединений).
Кроме того, я добавил в файл persistence.xml:

<shared-cache-mode>NONE</shared-cache-mode>

чтобы отключить межсеансовый кеш.


person Avner Levy    schedule 24.02.2013    source источник


Ответы (1)


Запросы только для чтения предназначены для отображения только зафиксированных для чтения данных. Если вам нужны транзакционные данные, вы не должны использовать только для чтения.

Возможно, вы сможете использовать эксклюзивное соединение (единицу сохраняемости или свойство контекста сохраняемости).

"eclipselink.jdbc.exclusive-connection.mode"="Всегда"

person James    schedule 25.02.2013