Ich möchte Spring Validation mit Anmerkungen verwenden, um meine Formulardaten zu validieren. So habe ich folgendes Objekt zum Beispiel:Spring Form Validation validiert Datenbank einfügen?
@Entity
@ComponentScan
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
@NotEmpty
private String type;
...
}
Wie man hier sehen kann ich verwenden @NotEmpty
auf das type
String. Ich möchte dies nur verwenden, um mein Formular zu bestätigen. Es sollte nicht für Datenbankeinfügungen validiert werden. So
, wenn ich tun:
@RequestMapping(value = "/myForm", method = RequestMethod.POST)
public String categoryPOST(HttpServletRequest request, Model model, @Valid Category category, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}
Es funktioniert, wie ich es arbeiten wollen. Aber wenn ich ein Dummy-Objekt erstellen:
Category category = new Category();
und ich führe eine auf dem leere Objekt speichern:
this.category_repository.save(category);
Ich erhalte den Fehler (nur wichtiger Teil davon):
Caused by: javax.validation.ConstraintViolationException: Validation failed for classes [my.project.jpa.entity.Category] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='darf nicht leer sein', propertyPath=type, rootBeanClass=class my.project.jpa.entity.Category, messageTemplate='{org.hibernate.validator.constraints.NotEmpty.message}'}
]
Und das ist nicht was ich will. Ich möchte die Annotation für die Formularvalidierung verwenden, aber ich möchte nicht, dass die Validierung bei Datenbankoperationen durchgeführt wird.
ist das irgendwie möglich?
Zusätzliche Informationen
hatte ich das gleiche Ergebnis mit:
javax.validation.constraints.NotNull;
Annotation.
BTW, '@ ComponentScan' Anmerkung auf der Entität seltsam aussieht. Bist du sicher, dass du es brauchst? –
Nein, nicht sicher. völlig neu im Frühling. – Mulgard
Wahrscheinlich können Sie es entfernen: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-scanning-autodetection –