📜  在UserResource上更新POST和DELETE方法以使用JPA

📅  最后修改于: 2021-01-11 06:08:12             🧑  作者: Mango

在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.javatpoint.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-Typeapplication / json

第6步:进入身体选项卡并输入名称和用户的出生日期。我们已经输入了James的名字。

步骤7:点击Send(发送)按钮。当我们尝试创建用户时,它将引发ConstaintViolationException

这是因为休眠使用序列。在用户实体中,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已创建。状态显示用户创建成功。