Desativar a atualização automática do Hibernate no flush em somente sinônimos de leitura

Eu tenho uma tabela e dois bancos de dados que têm a mesma tabela, mas um é um link simbólico do outro e somente leitura é permitida nesta tabela.

Eu mapeei a tabela para Java usando o Hibernate e uso spring para definir a fonte de dados do Entity Manager como um dos dois bancos de dados com base em alguns critérios de entrada.

Eu chamo apenas operações somente leitura (selects) quando estou conectado ao segundo banco de dados, mas parece que o Hibernate tenta liberar algo de volta para o banco de dados e ele falha ao informar que a atualização não é permitida nesta visualização.

Como faço para desativar esta atualização apenas para a segunda fonte de dados e mantê-la normal para a primeira?

Atualização: Olhando para o rastreamento de pilha, o flush parece ser iniciado aqui:

          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

Isto está relacionado com a propriedade hibernate.transaction.flush_before_completion? Posso definir como false para a segunda fonte de dados?

questionAnswers(2)

yourAnswerToTheQuestion