Ich habe eine Methode, die ein Objekt einfügt. Aber dieses Objekt wird mit einem anderen Objekt als eins zu vielen zugeordnet.Spring Web MVC Post Anfrage mehrere Objekt
@Entity
public class FutureMessage {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String message;
@ManyToOne
private User user;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
Dieses FutureMessage Objekt auf Benutzer-Objekt abgebildet, aber es gibt ein Problem mit Post-Anforderung.
{
"message":"qwerasdf",
"user":{"id":15,"username":"XXX"}
}
Diese Anfrage gibt 200 aber in der Datenbank XXX ist nicht der richtige Benutzername für id 15. Zur gleichen Zeit, wenn der Benutzer nicht in dieser Anfrage existiert, es gibt 200 (OK) zu.
Mein Problem ist dies, ich möchte keine Benutzer-ID senden. Ich will nur Nachricht und Benutzernamen senden (Es gibt mehr als zwei Attribute in FutureMessage Objekte)
@RequestMapping(path="message/new",method=RequestMethod.POST)
public FutureMessage newMessage(@RequestBody FutureMessage newMsg){// how to add user name here ?
FutureMessage msg = null;
if(newMsg==null)
return null;
if(newMsg.getUser()==null){
return null;
}
try{
msg = messageRepository.save(newMsg);
}catch(Exception ex){
ex.printStackTrace();
}
return msg;
}
EDIT:. Ich möchte nur FutureMessage Objekt und den Benutzernamen als Response senden. Das ist meine Frage, die 404 oder irgendetwas anderes nicht zurückgibt.