【发布时间】:2016-03-09 10:11:31
【问题描述】:
我有OneToMany 映射为
@Entity
public class Foo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long fooId;
private String fooName;
@OneToMany(mappedBy = "foo", cascade = CascadeType.ALL)
private Set<Bar> bars = new HashSet<Bar>();
// getters and setters go here
}
和
@Entity
public class Bar implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long barId;
private String barTitle;
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "fooId")
private Foo foo;
// getters and setters go here
}
我创建了一个 FooRestController 来使用 ajax 保存数据
@RequestMapping(value = "/foo/", headers="Accept=*/*", consumes="application/json", method = RequestMethod.POST)
public ResponseEntity<Void> create(@RequestBody Foo foo) {
fooService.saveFoo(foo);
Set<Bar> bars = foo.getBars();
for (Bar bar : bars) {
barService.savebar(bar);
}
return new ResponseEntity<Void>(HttpStatus.CREATED);
}
我的 ajax POST 请求是
var barArray = [];
bar[0] = "Bar1";
bar[1] = "Bar2";
$.ajax({
contentType : 'application/json',
crossDomain: true,
type: 'POST',
url: '/foo/',
dataType : 'json',
data : JSON.stringify({
'fooName' : 'A',
'bars' : barArray // this line here causes error
})
此时我遇到了错误
POST http://localhost:8080/name/foo/ 400 (Bad Request)
关于保存 foo 的 barArray 的任何建议。
注意
当我使用 Postman 发送数据时
{
"fooName": "A",
"bars" : [
{
"barTitle" : "a"
}
]
}
数据被插入并在 db 中创建一个新的 foo。
【问题讨论】:
标签: javascript java jquery ajax spring