Как использовать удаление каскада? - PullRequest
0 голосов
/ 08 июня 2018

Я использовал пример Matt Raible для приложения «Блог» http://gist.asciidoctor.org/?github-mraible/jhipster4-demo//README.adoc, и когда я пытался удалить блог, не удаляя сначала все записи этого блога, он выдает внутреннюю ошибку сервера (DataIntegrityViolationException).

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint ["FK_ENTRY_BLOG_ID: PUBLIC.ENTRY FOREIGN KEY(BLOG_ID) REFERENCES PUBLIC.BLOG(ID) (2801)"; SQL statement:
delete from blog where id=? [23503-197]]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
        at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:278)
        at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:244)

И мне интересно, есть ли способ получить каскад удаления при использовании JDL-импорта файла определения JDLStudio.jh и, если это невозможно, если кто-нибудь знает, как лучше всего это сделать.Как всегда, любой пример был бы великолепен!

1 Ответ

0 голосов
/ 08 июня 2018

Это невозможно объявить в JDL.Если вы хотите каскадно удалить, добавьте этот атрибут в аннотацию отношений.Например:

@OneToMany(mappedBy = "blog", cascade = CascadeType.REMOVE)
private Set<Article> articles = new HashSet<>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...