2016-11-20 2 views
0

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

0

Hallo vielleicht können Sie nur einen Getter auf der ID haben, aber ich weiß nicht, Hibernate/JPA

+0

yeah, das würde wahrscheinlich funktionieren, aber ich habe auf eine Konfiguration von Hibernate gehofft –

+0

Funktioniert für mich bei '@GeneratedValue' für '@ Id (Hibernate, JPA, Feldzugriff) – garfield

1

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.

+0

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? –

+0

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. –

+0

Entschuldigung, ich denke nicht, dass dies eine sehr gute Frage ist. Ich entschuldige mich. –

Verwandte Themen