Java Spring-Angularjs-DELETE方法
我对删除方法有问题。我尝试按请求主体删除实体 控制器:Java Spring-Angularjs-DELETE方法,java,angularjs,spring,h2,Java,Angularjs,Spring,H2,我对删除方法有问题。我尝试按请求主体删除实体 控制器: @RequestMapping(value = "/remove", method = DELETE) public void remove(Package pack) { packageRepository.delete(pack); } 和AngularJS: $http({ method : 'DELETE', url : '/api/package/remove',
@RequestMapping(value = "/remove", method = DELETE)
public void remove(Package pack) {
packageRepository.delete(pack);
}
和AngularJS:
$http({
method : 'DELETE',
url : '/api/package/remove',
data : pack
}).then
其中pack是一个实体。我该怎么办?我一直在收到消息:缺少必需的请求正文:public javax.xml.ws.Response com.controller.PackageController.removecom.model.Package
课程包:
@Entity
@Data
@Table(name = "Package")
@NoArgsConstructor
@AllArgsConstructor
public class Package {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String description;
private Double weight;
private Double xDimension;
private Double yDimension;
private Double zDimension;
private Double capacity;
private LocalDateTime whenTake;
private String timeString;
@OneToOne
private User user;
@OneToOne
private Warehouse warehouse;
@ManyToOne
@Null
@JsonIgnore
private Route route;
}
Json正文:
capacity: 20
description: "Kolo jest okrągłe"
id: 1
name: "Koła Audi"
timeString: "2017-11-24 18:43:23"
user: {…}
address: "Graniczna 25"
email: null
firmName: "Swinouscie Comapny"
firstName: "Karol"
id: 1
lastName: "Cichowski"
telephoneNumber: "700880774"
warehouse: {…}
address: "Sportowa 16"
id: 1
name: "Magazyn Amazon"
telephoneNumber: "74-816-342-465"
weight: 29
whenTake: null
xDimension: null
yDimension: null
zDimension: null
将您的包注释为请求正文:
@RequestMapping(value = "/remove", method = DELETE)
public void remove(@RequestBody Package pack) {
packageRepository.delete(pack);
}
难道身体只是被忽略了吗?请在AngularJS中发布包类和包的相关代码,但我还应该发送什么?只有身份证吗?我尝试使用@PathVariable,但在Firefox中使用F12仍然会出现同样的错误,我看到了一个包的Json正文,并且是正确的。我尝试使用headers=content-type=application/x-www-form-urlencoded,但它的dosnt工作原理我认为更常见的是在删除时传递id,可以将id添加为querystring参数。而不是将package作为您的返回类型,并在删除包返回包后在方法内部;我得到了200->F12我看到了一个我发送并输出的body参数answer->所有包参数都是空的。但当我刷新页面并尝试获取所有存在的元素时,仍然会看到我删除的元素;/我在h2中看到表,这个元素仍然存在。@MikeEvans然后你在点击控制器,但现在你的问题是持久性?持久性?你能解释一下吗?