Ich suche nach einer Möglichkeit zu verhindern, dass Objekte mit Federdaten aktualisiert werden. Ich habe einige Themen dazu gefunden, aber keine von ihnen hat eine Lösung.Spring-data: Update verhindern
Ich habe ein Objekt, das erstellt und gelesen werden kann. Das ist es. Ich möchte keine Änderungen/Updates unterstützen. Ich verwalte/generiere die Datenbank-ID selbst.
Ich würde gerne org.springframework.data.repository.Repository
Schnittstelle verwenden (oder JpaRepository
/CrudRepository
wenn ich irgendwie die <S extends T> S save(S entity);
Logik Update zu verhindern, ändern kann), weil ich die saubere findBy ... Schnittstelle Notationen lieben.
Die beste Lösung, die ich bisher gefunden habe, ist Persistable
zu implementieren und die isNew(…)
zu überschreiben, um immer wahr zurückzukehren. Aber das ist einfach beschissen, denn das Objekt ist nicht "neu", wenn es schreibgeschützt ist.
Gibt es einen sauberen Weg, dies zu erreichen?
hinzufügen 'aktualisierbar = false' zu jedem Attribut des Unternehmens steht. Dann werden Aufrufe von 'update' ignoriert, da der JPA-Provider keine Änderungen feststellt. – manish
Gut zu wissen, danke! Aber es löst mein Problem immer noch nicht (es wird es sogar noch schlimmer machen): Wenn ein Entwickler zum Beispiel eine Eigenschaft in einem Jahr hinzufügt, kann das Verhalten plötzlich chance. –
Können Sie das Problem etwas besser erklären? Nehmen wir an, Sie haben eine Entität 'Foo' und das zugehörige Repository' FooRepository'. Möchtest du, dass 'FooRepository' keine' CUD'-Methoden (create, update, delete) hat (also nur Lese-Methoden), oder möchtest du, dass die Methoden dort sind, aber keine Wirkung haben, wenn sie aufgerufen werden? Es wird nützlich sein, wenn Sie die gewünschte Definition (welche Methoden Sie wollen) für 'FooRepository' zur Frage hinzufügen können. – manish