【在UserResource上更新POST和DELETE方法以使用JPA】在本节中, 我们将转换deleteUser()方法和createUser()方法以使用JPA。让我们在UserJPAResource.java中进行更改。
步骤1:更改deleteUser()方法的服务。
步骤2:删除返回类型, 因为userRepository的delete()方法不返回任何内容。
@DeleteMapping("/jpa/users/{id}")public void deleteUser(@PathVariable int id){userRepository.deleteById(id);
}
如果失败, 则抛出异常。
第3步:打开邮递员并发送URL为http:// localhost:8080 / jpa / users / 1的DELETE请求。
文章图片
状态:200 OK表示记录已成功删除。
再次发送具有相同URL http:// localhost:8080 / jpa / users / 1的DELETE请求。它返回一条消息“不存在ID为1的实体”。
{"timesatmp": "2017-07-20T12:10:29.988+0000", "message": "No class com.srcmini.rest.webServices.restfulwebservices.user. User entity with id 1 exists! ", "details": "uri=/jpa/user/1"}
现在, 我们将生成一个POST请求来创建一个用户。
步骤4:使用URL http:// localhost:8080 / jpa / users发送POST请求。
步骤5:点击Headers标签, 并确保Content-Type为application / json。
文章图片
步骤6:转到“正文”选项卡, 然后输入用户的姓名和权限。我们输入了詹姆斯的名字。
文章图片
步骤7:点击Send(发送)按钮。当我们尝试创建用户时, 它将引发ConstaintViolationException。
这是因为休眠使用序列。在User实体中, Id是生成的值, 因此它为我们创建了一个序列。 Hibernate试图插入ID为1的行。它与我们已有的数据冲突。要消除此冲突, 请执行以下操作:
步骤8:打开data.sql文件并更改ID。
insert into user values(101, sysdate(), "John");
insert into user values(102, sysdate(), "Robert");
insert into user values(104, sysdate(), "Andrew");
insert into user values(105, sysdate(), "Jack");
步骤9:再次发送POST请求。它返回状态:201已创建。状态显示用户创建成功。
文章图片
推荐阅读
- RESTful Web服务简介
- 使用路径变量增强Hello World服务
- 创建发布实体以及与用户实体的多对一关系
- RESTful服务的国际化
- 将RESTful服务连接到JPA
- 为RESTful服务实现HATEOAS
- java|web3js基本使用
- WinXP系统IE提示“确实允许此页面访问剪贴板吗”如何处理?
- WinXP电脑IE提示“此选项卡已经恢复”怎样办?