Deaktivieren Sie die automatische Hibernate-Aktualisierung beim Leeren von schreibgeschützten Synonymen

Ich habe eine Tabelle und zwei Datenbanken, die dieselbe Tabelle haben, aber eine ist ein Symlink der anderen und nur das Lesen ist in dieser Tabelle erlaubt.

Ich habe die Tabelle mit Hibernate auf Java abgebildet und mithilfe von spring die Datenquelle des Entity Managers auf der Grundlage einiger Eingabekriterien als eine der beiden Datenbanken festgelegt.

Ich rufe nur schreibgeschützte Vorgänge (selects) auf, wenn ich mit der zweiten Datenbank verbunden bin, aber es scheint, als ob Hibernate versucht, etwas in die Datenbank zurückzuspeichern, und es schlägt fehl, mitzuteilen, dass in dieser Ansicht keine Aktualisierung zulässig ist.

Wie deaktiviere ich dieses Update nur für die zweite Datenquelle und behalte es für die erste normal bei?

Update: Betrachtet man den Stack-Trace, scheint der Flush hier gestartet zu sein:

          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

Steht dies im Zusammenhang mit der Eigenschaft hibernate.transaction.flush_before_completion? Kann ich für die zweite Datenquelle den Wert false festlegen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage