2016-03-27 12 views
0

In unserer Anwendung verwenden wir PL/SQL die Persistenz von Daten zu erhalten, wir stark verwenden auch PL/SQL Stored Procedures, geplante Aufträge und löst Teile des implementieren Anwendungslogik.JPA-Transaktionen und Triggern/geplante Aufträge mögliche Konflikte

Meine Frage ist:

Mit JPA diese Persistenz zugreifen sollte ich über Konflikte sorgen
dass JPA-Transaktionen möglicherweise mit den oben genannten Trigger und geplante Aufträge definiert auf der DB haben ?

Es wäre sehr hilfreich, auch wenn Sie auf einige Online-Materialien zeigen können , dass ich lesen kann, um meine Zweifel zu beseitigen.
danke.

Antwort

0

Sie können trotzig Problem haben. Wenn in der DB eine Geschäftslogik implementiert ist, kann dies möglicherweise zu einer Code-Duplizierung führen. Aber Ihr größtes Problem hängt mit der Datenintegrität und -konsistenz zusammen:

  1. Sind Sie Anwendung mit optimistischen Sperren. Wenn ja, ist es möglich, dass die JPA die Änderungen in den Versionen der respektierten Entitäten nicht sehen kann. Und wird keine Ausnahme für optimistische Sperren ausgeben, wenn eine Änderung aufgrund des PLSQl-Codes auftritt. Es sei denn, die Versionierung ist auch darin implementiert.
  2. Caching. Wenn Sie Caching verwenden, könnte dies dazu führen, dass Ihr Cache nicht mit dem Datenbankstatus übereinstimmt. Beispiel: Sie lesen die Entität A, der Status wird zwischengespeichert, und die PLSQL-Hintergrundprozedur aktualisiert ihren Status. Dann machst du noch ein Update und behaltst und Ta Daten ... du hast ein Problem. Und dann wieder, wir gehen zu Punkt 1 mit wie die Daten versioniert werden.

Im Allgemeinen Misch PL/SQL und Hibernate ich es wirklich nicht mögen ...

Verwandte Themen