ОШИБКА: обновление или удаление таблицы «tb_webapp» нарушает ограничение внешнего ключа в таблице «tb_database». ⇐ JAVA
ОШИБКА: обновление или удаление таблицы «tb_webapp» нарушает ограничение внешнего ключа в таблице «tb_database».
Я пытаюсь удалить родительского учащегося или родительский курс и получаю следующую ошибку: обновление или удаление таблицы «tb_webapp» нарушает ограничение внешнего ключа «fkkp7x1km86fdyb6c1jdc4u3phg» в таблице «tb_database» Подробности: на ключ (id_webapp)=(4) по-прежнему имеется ссылка из таблицы "tb_database".
Servlet.service() для сервлета [dispatcherServlet] в контексте с путем [] выдал исключение [Ошибка обработки запроса: org.springframework.dao.DataIntegrityViolationException: исключение JDBC при выполнении SQL [удалить из tb_webapp, где uuid=?] [ОШИБКА: обновление или удаление таблицы «tb_webapp» нарушает ограничение внешнего ключа «fkkp7x1km86fdyb6c1jdc4u3phg» в таблице «tb_database». Подробности: ключ (id_webapp) = (4) по-прежнему ссылается на таблицу «tb_database».] [н/д]; SQL [н/д]; ограничение [fkkp7x1km86fdyb6c1jdc4u3phg]] с основной причиной Контроллер «WebAppController»:
@DeleteMapping("/{uuid}") public ResponseEntity deleteWebAppByUuid( @PathVariable("uuid") UUID uuid ) { пытаться { Результат WebAppEntity = webAppService.deleteWebAppByUuid(uuid); ApiResponse ответ = новый ApiResponse(HttpStatus.OK, «Успешное удаление данных веб-приложения!», результат); вернуть новый ResponseEntity(response, response.getStatus()); } catch (ошибка CustomRequestException) { вернуть ошибку.GlobalCustomRequestException(error.getMessage(), error.getStatus()); } } Службы "WebAppService":
@Transactional public WebAppEntity deleteWebAppByUuid (UUID uuid) { WebAppEntity findData = webAppRepository.findByUuid(uuid); int result = webAppRepository.findByUuidAndDelete(uuid); если (результат > 0) { вернуть данные поиска; } еще { throw new CustomRequestException("UUID" + uuid + "не найден", HttpStatus.NOT_FOUND); } } Сущность "WebAppEntity"
@OneToMany(mappedBy = "webAppEntity", cascade = CascadeType.ALL, orphanRemoval = true) частный список dataList; Сущность "DatabaseEntity"
пакет sda.catalogue.sdacataloguerestapi.modules.WebApp.Entities; импортировать com.fasterxml.jackson.annotation.JsonIgnore; импортировать com.fasterxml.jackson.annotation.JsonIgnoreProperties; импортировать jakarta.persistence.*; импортировать ломбок.AllArgsConstructor; импортировать ломбок.Getter; импортировать ломбок.NoArgsConstructor; импортировать ломбок.Setter; импортировать org.hibernate.annotations.Immutable; импортировать org.hibernate.annotations.UuidGenerator; импортировать sda.catalogue.sdacataloguerestapi.modules.TypeDatabase.Entities.TypeDatabaseEntity; импортировать java.util.UUID; @Сущность @Неизменный @NoArgsConstructor @AllArgsConstructor @Getter @Сеттер @Table(name = "tb_database") общественный класс DatabaseEntity { @Идентификатор @GeneratedValue(стратегия = GenerationType.AUTO) @Column(name = "id_database") частная длинная база данных idDatabase; @UuidGenerator @GeneratedValue(стратегия = GenerationType.UUID) частный UUID uuid; @Column(name = "api_name") частная строка apiName; @Column(name = "ip_address") частная строка apiAddress; @Column(name = «имя пользователя») частная строка имя пользователя; @Column(имя = «пароль») личный строковый пароль; @ManyToOne(каскад = CascadeType.ALL) @JoinColumn(name = "id_webapp") @JsonIgnore частный WebAppEntity webAppEntity; @ManyToOne @JoinColumn(name = "id_type_database") @JsonIgnoreProperties("databaseEntities") частный TypeDatabaseEntity typeDat``` `Репозиторий "WebAppRepository"`
@Modifying@Transactional@Query("DELETE FROM WebAppEntity w WHERE w.uuid = :uuid")int findByUuidAndDelete(UUID uuid); Журнал почтальона: «статус»: 500, «ошибка»: «Внутренняя ошибка сервера», я хочу попробовать удалить по uuid из родительского: tb_WebApp и автоматически удалить из дочернего: tb_database
Я пытаюсь удалить родительского учащегося или родительский курс и получаю следующую ошибку: обновление или удаление таблицы «tb_webapp» нарушает ограничение внешнего ключа «fkkp7x1km86fdyb6c1jdc4u3phg» в таблице «tb_database» Подробности: на ключ (id_webapp)=(4) по-прежнему имеется ссылка из таблицы "tb_database".
Servlet.service() для сервлета [dispatcherServlet] в контексте с путем [] выдал исключение [Ошибка обработки запроса: org.springframework.dao.DataIntegrityViolationException: исключение JDBC при выполнении SQL [удалить из tb_webapp, где uuid=?] [ОШИБКА: обновление или удаление таблицы «tb_webapp» нарушает ограничение внешнего ключа «fkkp7x1km86fdyb6c1jdc4u3phg» в таблице «tb_database». Подробности: ключ (id_webapp) = (4) по-прежнему ссылается на таблицу «tb_database».] [н/д]; SQL [н/д]; ограничение [fkkp7x1km86fdyb6c1jdc4u3phg]] с основной причиной Контроллер «WebAppController»:
@DeleteMapping("/{uuid}") public ResponseEntity deleteWebAppByUuid( @PathVariable("uuid") UUID uuid ) { пытаться { Результат WebAppEntity = webAppService.deleteWebAppByUuid(uuid); ApiResponse ответ = новый ApiResponse(HttpStatus.OK, «Успешное удаление данных веб-приложения!», результат); вернуть новый ResponseEntity(response, response.getStatus()); } catch (ошибка CustomRequestException) { вернуть ошибку.GlobalCustomRequestException(error.getMessage(), error.getStatus()); } } Службы "WebAppService":
@Transactional public WebAppEntity deleteWebAppByUuid (UUID uuid) { WebAppEntity findData = webAppRepository.findByUuid(uuid); int result = webAppRepository.findByUuidAndDelete(uuid); если (результат > 0) { вернуть данные поиска; } еще { throw new CustomRequestException("UUID" + uuid + "не найден", HttpStatus.NOT_FOUND); } } Сущность "WebAppEntity"
@OneToMany(mappedBy = "webAppEntity", cascade = CascadeType.ALL, orphanRemoval = true) частный список dataList; Сущность "DatabaseEntity"
пакет sda.catalogue.sdacataloguerestapi.modules.WebApp.Entities; импортировать com.fasterxml.jackson.annotation.JsonIgnore; импортировать com.fasterxml.jackson.annotation.JsonIgnoreProperties; импортировать jakarta.persistence.*; импортировать ломбок.AllArgsConstructor; импортировать ломбок.Getter; импортировать ломбок.NoArgsConstructor; импортировать ломбок.Setter; импортировать org.hibernate.annotations.Immutable; импортировать org.hibernate.annotations.UuidGenerator; импортировать sda.catalogue.sdacataloguerestapi.modules.TypeDatabase.Entities.TypeDatabaseEntity; импортировать java.util.UUID; @Сущность @Неизменный @NoArgsConstructor @AllArgsConstructor @Getter @Сеттер @Table(name = "tb_database") общественный класс DatabaseEntity { @Идентификатор @GeneratedValue(стратегия = GenerationType.AUTO) @Column(name = "id_database") частная длинная база данных idDatabase; @UuidGenerator @GeneratedValue(стратегия = GenerationType.UUID) частный UUID uuid; @Column(name = "api_name") частная строка apiName; @Column(name = "ip_address") частная строка apiAddress; @Column(name = «имя пользователя») частная строка имя пользователя; @Column(имя = «пароль») личный строковый пароль; @ManyToOne(каскад = CascadeType.ALL) @JoinColumn(name = "id_webapp") @JsonIgnore частный WebAppEntity webAppEntity; @ManyToOne @JoinColumn(name = "id_type_database") @JsonIgnoreProperties("databaseEntities") частный TypeDatabaseEntity typeDat``` `Репозиторий "WebAppRepository"`
@Modifying@Transactional@Query("DELETE FROM WebAppEntity w WHERE w.uuid = :uuid")int findByUuidAndDelete(UUID uuid); Журнал почтальона: «статус»: 500, «ошибка»: «Внутренняя ошибка сервера», я хочу попробовать удалить по uuid из родительского: tb_WebApp и автоматически удалить из дочернего: tb_database
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение