ich zwei Datenmodell User und Auto haben:Fehlgeschlagen Wert vom Typ Objekt zu Objekt Frühling erforderlich Typ konvertieren
User.java:
@Entity
@Table(name="APP_USER")
public class User implements Serializable{
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
......
@OneToMany(mappedBy="user",cascade=CascadeType.ALL)
private Set<Car> cars = new HashSet<Car>();
Car.java:
@Entity
public class Car implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id ;
.....
@ManyToOne(optional=false)
@JoinColumn(name="user_fk")
private User user;
In der Steuerung möchte ich einen neuen Benutzer hinzufügen, also
AppController.java:
@Controller
@RequestMapping("/")
@SessionAttributes("roles")
public class AppController {
@RequestMapping(value = { "/newuser" }, method = RequestMethod.GET)
public String newUser(ModelMap model) {
User user = new User();
model.addAttribute("user", user);
model.addAttribute("edit", false);
model.addAttribute("loggedinuser", getPrincipal());
return "registration";
}
@RequestMapping(value = { "/newuser" }, method = RequestMethod.POST)
public String saveUser(@ModelAttribute @Valid User user, BindingResult result,
ModelMap model) {
if (result.hasErrors()) {
return "registration";
}
if(!userService.isUserSSOUnique(user.getId(), user.getSsoId())){
FieldError ssoError =new FieldError("user","ssoId",messageSource.getMessage("non.unique.ssoId", new String[]{user.getSsoId()}, Locale.getDefault()));
result.addError(ssoError);
return "registration";
}
userService.saveUser(user);
model.addAttribute("success", "User " + user.getFirstName() + " "+ user.getLastName() + " registered successfully");
model.addAttribute("loggedinuser", getPrincipal());
return "registrationsuccess";
}
Auch habe ich eine Klasse mit dem Namen StringToUser (Implementiert Converter so kann ich ein neues Auto hinzufügen, die einen Benutzer enthalten)
StringtoUser.java:
Die AppController.java und saveUser-Methode funktioniert gut, bevor ich die StringToUser-Klasse .But nach dem Erstellen hinzufügen d StringToUser Klasse, bekomme ich einen Fehler in Saveuser Methode
The error is : WARNING: Failed to bind request element: org.springframework.beans.TypeMismatchException: Failed to convert value of type [com.websystique.springmvc.model.User] to required type [com.websystique.springmvc.model.User]; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [com.websystique.springmvc.model.User] to type [@org.springframework.web.bind.annotation.ModelAttribute @javax.validation.Valid com.websystique.springmvc.model.User] for value 'User [id=null, ssoId=alaa, password=alaa1991, firstName=, lastName=, email=, userProfiles=null, accounts=null, userDocuments=[], cars=[], documents=[]]'; nested exception is java.lang.ClassCastException: com.websystique.springmvc.model.User cannot be cast to java.lang.String
Edit:
Der Fehler:
WARNING: Failed to bind request element: org.springframework.beans.TypeMismatchException: Failed to convert value of type [com.websystique.springmvc.model.User] to required type [com.websystique.springmvc.model.User]; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [com.websystique.springmvc.model.User] to type [@org.springframework.web.bind.annotation.ModelAttribute @javax.validation.Valid com.websystique.springmvc.model.User] for value 'User [id=null, ssoId=alaa, password=alaa1991, firstName=, lastName=, email=, userProfiles=null, accounts=null, userDocuments=[], cars=[], documents=[]]'; nested exception is java.lang.NullPointerException
Es scheint, dass Ihre Convert-Klasse einen Verweis auf die User-Klasse statt der String-Repräsentation erhält, die Sie benötigen. Haben Sie versucht, zu ersetzen: Integer id = Integer.parseInt ((String) -Element); für: Ganzzahl id = ((Benutzer) -Element) .getId(); –
Ich habe gerade versucht, Sie Beispiel, bekomme ich das gleiche Problem! –
Können Sie die vollständige Fehler-Stack-Ablaufverfolgung bereitstellen? Sind Sie sicher, dass es in der Konverterklasse ausfällt? –