Wie verhindere ich, dass jemand eine Entität erstellt und seine ID festlegt? Ich möchte auf die Datenbank Autoincrement verzögern und es einen 409 Fehler werfen lassen, wenn es passiert. Ich versuche @GeneratedValue (strategie = GenerationType.IDENTITY) und @GeneratedValue (strategie = GenerationType.AUTO) mit dem Primärschlüssel in der Datenbank automatisch inkrementieren, aber die Einstellung der ID wird nie als ein Problem gekennzeichnet und überschreibt mein Autoincrement-Schema in die MySQL-Datenbank.Verhindern, dass Benutzer ID der JPA/Hibernate-Entität festlegen
Antwort
Hallo vielleicht können Sie nur einen Getter auf der ID haben, aber ich weiß nicht, Hibernate/JPA
Eine Sache, die Sie tun können, ist: Ihre id property and its setter method private
machen, die den Benutzerzugriff setId
Methode des Objekts lassen nicht ,
Da Hibernate jedoch die Methode set verwendet, um die Entität zu initialisieren, die Sie aus Ihrer DB lesen, kann sie auf diese Methode über Reflektion zugreifen. Sie müssen sich also keine Gedanken darüber machen, andere Dinge zu ändern.
Danke Vimal. Ich versuche, einen 409 Fehler für Komponententests neu zu erstellen. Gibt es jemals einen Fall, in dem das Festlegen der ID auf einen Wert und das Erstellen der Entität dies auslöst? Ich habe gelesen, dass dies einen 409-Fehler auslösen kann, aber ich kann nicht scheinen, dass es geschieht? –
Ich hatte gehofft, dass es eine Konfiguration von @GeneratedValue gibt, die dies tun könnte, aber AUTO und IDENTITY scheinen die Einstellung von id auf der Entität zu erlauben. Ich bekomme 400, wenn ich den Zugriff auf die Einstellung von id mit einem privaten Setter einschränke oder den Setter vollständig entferne. –
Entschuldigung, ich denke nicht, dass dies eine sehr gute Frage ist. Ich entschuldige mich. –
- 1. Verhindern, dass Benutzer den Abfragezeichenfolgenparameter
- 2. Verhindern, dass der Benutzer bestimmte Zeichen eingibt?
- 3. Verhindern, dass der Benutzer viele Punkte eingeben
- 4. Verhindern, dass Benutzer Office-Add-Ins deaktivieren?
- 5. Verhindern, dass Benutzer Benachrichtigungen verwerfen
- 6. Verhindern, dass ID 1 gelöscht wird
- 7. Verhindern, dass Benutzer doppelte Daten eingeben
- 8. wxWidgets verhindern, dass Benutzer das Verzeichnis verlässt
- 9. Verhindern, dass Benutzer Zeitpläne für Jobs erstellen
- 10. Verhindern, dass Code vom Benutzer ausgeführt wird
- 11. verhindern, dass Benutzer 0 als Eingabe eingibt
- 12. Verhindern, dass Benutzer die Seite aktualisieren
- 13. Umbraco - Verhindern, dass Benutzer den Seitennamen bearbeiten
- 14. Verhindern, dass mobile Benutzer Desktop-Karussellbilder herunterladen
- 15. Verhindern, dass Benutzer eine Datei in TFS
- 16. Verhindern, dass Benutzer im Internet surfen
- 17. Verhindern, dass der Browser die Sitzungs-ID zwischenspeichert
- 18. Verhindern, dass Benutzer Dateien direkt von der Website herunterladen, wie?
- 19. Verhindern, dass Benutzer ein Foto von der App-Anzeige machen
- 20. struts2 verhindern, dass andere Benutzer eine Aktion ausführen
- 21. Verhindern, dass versteckte Felder mit ID gehackt werden
- 22. Kann ich Benutzer-ID mit Measurement Protocol festlegen?
- 23. verhindern, dass Benutzer Zugriff auf die login.php Prozessdatei in Browsernavigation
- 24. Verhindern, dass Benutzer die Cursorposition auf UITextField setzen
- 25. Verhindern, dass Benutzer ein Formular mit einer bestimmten Zeichenfolge senden
- 26. Verhindern, dass der Bootstrapper entfernt wird
- 27. Wie kann man verhindern, dass der Benutzer die ID in der URL ändert, um auf andere Datensätze zuzugreifen?
- 28. Wie kann man verhindern, dass der Benutzer das Systemdatum/die Systemzeit ändert (in Android)?
- 29. JQuery Filtertextfelder (Verhindern, dass Benutzer des Einfügen bestimmte Zeichen)
- 30. Verhindern, dass Benutzer eine Zeichenfolge in PHP explodiert
yeah, das würde wahrscheinlich funktionieren, aber ich habe auf eine Konfiguration von Hibernate gehofft –
Funktioniert für mich bei '@GeneratedValue' für '@ Id (Hibernate, JPA, Feldzugriff) – garfield