установка постоянства контекста только для чтения в jpa - PullRequest
3 голосов
/ 17 сентября 2010

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

Мы уже думали о создании двух учетных записей для использования в этих постоянных модулях, одна будет иметь доступ только для чтения, а другая будет иметь права на чтение и запись.1004 * Мне было интересно, есть ли что-то более простое, что мы можем сделать с файлом persistence.xml или оно может быть на уровне драйвера JDBC, так что мои подключения к БД доступны только для чтения и чтения-записи на основе постоянстваблок активен.или используется URL-адрес драйвера базы данных ... мы используем SQL-сервер в качестве сервера БД ... если это поможет.

1 Ответ

6 голосов
/ 17 сентября 2010

Насколько мне известно, это не поддерживается (кроме использования пользователя с ограниченными правами для подключения к базе данных) в стандартном JPA.Но ваш провайдер JPA может поддерживать:

  • объекты только для чтения (например, с аннотациями ElipseLink @ReadOnly или Hibernate @Immutable)
  • запросы только для чтения с помощью подсказок (например, с *)1008 * установлен на true для EclipseLink или org.hibernate.readOnly установлен на true для Hibernate).

Я проверил свойства подключения драйвера Microsoft JDBC, но не сделалНе могу найти ничего, что могло бы помочь.

PS: есть ожидающий запрос на улучшение EclipseLink ( Bug 282595 ), чтобы обеспечить поддержку только для чтения EntityManager.Вы можете проголосовать за это.

...