私はオブジェクトを挿入するメソッドを持っています。しかし、このオブジェクトは1対1として別のオブジェクトとマッピングされました。Spring Web MVC複数のオブジェクトをリクエスト投稿
@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;
}
}
このFutureMessageオブジェクトはUserオブジェクトにマップされていますが、ポストリクエストに問題があります。
{
"message":"qwerasdf",
"user":{"id":15,"username":"XXX"}
}
この要求には、200を返しますが、データベースXXXに、ユーザがこの要求に存在していない場合、それはあまりにも(OK)200を返すと同時にID 15 のための正しいユーザー名ではありません。
私の問題はこれです、私はユーザーIDを送信したくありません。私はちょうどメッセージとユーザ名を送信する(FutureMessageオブジェクト内の2つの以上の属性があります)
@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:は、私が唯一ResponseBodyとしてFutureMessageオブジェクトとユーザ名を送りたいです。これは私の質問ではない404または何かを返すことです。