I am new to spring boot and I am trying to send a simple DELETE request via postman, but i am stuck with error 500. Can someone point the errors in my code?.
Postman delete query “localhost:8080/v1/users/removeUser/6”:
{
"timestamp": "2024-04-30T19:11:15.726+00:00",
"status": 500,
"error": "Internal Server Error",
"path": "/v1/users/removeUser/6"
}
Controller:
@DeleteMapping("/removeUser/{id}")
public ResponseEntity<?> deleteUser(@PathVariable Long id) {
userService.deleteUser(id);
return ResponseEntity.ok("Delete: User ID " + id);
}
Service Implementation:
public void deleteUser(Long userId) {
Optional<User> optionalUser = userRepository.findById(userId);
if (optionalUser.isPresent()) {
User userDelete = optionalUser.get();
userRepository.delete(userDelete);
log.info("Deleting User with ID {}", userId);
}
else {
throw new IllegalArgumentException("User with ID " + userId + " not found!");
}
}
Log:
Referential integrity constraint violation: "FK32IR33U28FO97252HKSJVLUBP: PUBLIC.TRAININGS FOREIGN KEY(USER_ID) REFERENCES PUBLIC.USERS(ID) (CAST(6 AS BIGINT))"; SQL statement:
delete from users where id=? [23503-224]
2024-04-30T21:06:58.154+02:00 ERROR 28068 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.DataIntegrityViolationException: could not execute statement [Naruszenie więzów integralności: "FK32IR33U28FO97252HKSJVLUBP: PUBLIC.TRAININGS FOREIGN KEY(USER_ID) REFERENCES PUBLIC.USERS(ID) (CAST(6 AS BIGINT))"
Referential integrity constraint violation: "FK32IR33U28FO97252HKSJVLUBP: PUBLIC.TRAININGS FOREIGN KEY(USER_ID) REFERENCES PUBLIC.USERS(ID) (CAST(6 AS BIGINT))"; SQL statement:
delete from users where id=? [23503-224]] [delete from users where id=?]; SQL [delete from users where id=?]; constraint ["FK32IR33U28FO97252HKSJVLUBP: PUBLIC.TRAININGS FOREIGN KEY(USER_ID) REFERENCES PUBLIC.USERS(ID) (CAST(6 AS BIGINT))"; SQL statement:
delete from users where id=? [23503-224]]] with root cause
at org.h2.message.DbException.getJdbcSQLException(DbException.java:520) ~[h2-2.2.224.jar:2.2.224]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) ~[h2-2.2.224.jar:2.2.224]
at org.h2.message.DbException.get(DbException.java:223) ~[h2-2.2.224.jar:2.2.224]
at org.h2.message.DbException.get(DbException.java:199) ~[h2-2.2.224.jar:2.2.224]
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:365) ~[h2-2.2.224.jar:2.2.224]
at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:382) ~[h2-2.2.224.jar:2.2.224]
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:256) ~[h2-2.2.224.jar:2.2.224]
at org.h2.table.Table.fireConstraints(Table.java:1200) ~[h2-2.2.224.jar:2.2.224]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-5.0.1.jar:na]
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:41) ~[hibernate-core-6.4.1.Final.jar:6.4.1.Final]
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) ~[hibernate-core-6.4.1.Final.jar:6.4.1.Final]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:794) ~[spring-tx-6.1.2.jar:6.1.2]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:249) ~[spring-aop-6.1.2.jar:6.1.2]
at com.cwf.user.internal.$Proxy137.delete(Unknown Source) ~[na:na]
at com.cwf.user.internal.UserServiceImpl.deleteUser(UserServiceImpl.java:38) ~[classes/:na]
at com.cwf.user.internal.UserController.deleteUser(UserController.java:26) ~[classes/:na
at com.cwf.user.internal.UserServiceImpl.deleteUser(UserServiceImpl.java:38) ~[classes/:na]
at com.cwf.user.internal.UserController.deleteUser(UserController.java:26) ~[classes/:na
How can I solve this problem?
Thank you very much in advance for your help.