У меня есть таблица и две базы данных, которые имеют одну и ту же таблицу, но одна является символической ссылкой для другой, и только чтение разрешено в этой таблице.Отключить автоматическое обновление Hibernate на флеше только для чтения только для синонимов только для чтения
Я сопоставил таблицу с Java с помощью Hibernate, и я использую Spring, чтобы установить источник данных Entity Manager как одну из двух баз данных на основе некоторых критериев ввода.
Я вызываю только операции только для чтения (выбирает), когда я подключен ко второй базе данных, но кажется, что Hibernate пытается сбросить что-то обратно в базу данных, и это не позволяет показать, что обновление не разрешено в этом представлении.
Как отключить это обновление только для второго источника данных и сохранить его нормальным для первого?
Update: Глядя на трассировку стека, флеш, кажется, начал здесь:
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365) at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504) ... 55 more
Является ли это связано с hibernate.transaction.flush_before_completion недвижимости? Могу ли я установить значение false для второго источника данных?
Это не DDL, он выпускает только DML, я использую только аннотации и не hbm.xml. Глядя на StackTrace, обновление, похоже, началась из-за этого: 375400 на org.hibernate.impl.SessionImpl.managedFlush (SessionImpl.java:365) 375401 в org.hibernate.ejb.AbstractEntityManagerImpl $ 1.beforeCompletion (AbstractEntityManagerImpl.java:504) 375402 ... 55 еще Это связано с настройкой hibernate.transaction.flush_before_completion? – Arvind