Ich brauche einen Rat. Ich bin nicht gut in Spring Framework und ich möchte Ihnen nur eine einfache Frage stellen.Wie kann ich Objekt nur durch 1 Feld unter @RequestBody Annotation abrufen?
Ich habe ein nächstes POJO Objekt auf der Seite Server:
@Entity
@Table(name = "AutoRate")
public class AutoService {
public AutoService() {
}
@Id
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
private long id;
@Column(name = "serviceName", nullable = false)
private String serviceName;
@Column(name = "imageURL", nullable = false)
private String imageURL;
@Column(name = "mapCoordinate", nullable = false)
private String mapCoordinate;
@Column(name = "websiteURL", nullable = false)
private String websiteURL;
@Column(name = "phoneNumber", nullable = false)
private String phoneNumber;
@JsonManagedReference
@OneToMany(mappedBy = "autoService", fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private List<Service> services = new ArrayList<Service>();}
Es alle Getter und Setter enthält; Ich möchte nur Platz sparen.
Weiter: Ich möchte 1 Objekt aus der Datenbank für den Client abrufen, und ich möchte dies nur mit serviceName
Variable in der Datenbank tun.
Ich habe eine nächste Controller-Methode:
@RequestMapping(value = "/getAutoService", method = RequestMethod.GET)
@ResponseBody
public AutoService getAutoService(@RequestBody String serviceName){
AutoService autoService = dataBaseService.getByName(serviceName);
return autoService;
}
Nach Aufruf von Client mir nächsten Fehler:
117899 [http-apr-8080-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public com.webserverconfig.user.entity.AutoService com.webserverconfig.user.controller.ServiceController.getAutoService(com.webserverconfig.user.entity.AutoService)
Ich denke, dass ich @RequestBody
Anmerkung falsch verwenden.
Kann jemand einen Rat geben?
Danke für die Antwort. Ich werde es ausprobieren. – Andrew
Ist meine Antwort Ihnen geholfen? Hat es dein Problem gelöst? @Andrew –