代码之家  ›  专栏  ›  技术社区  ›  Mike

如何使用删除级联?

  •  0
  • Mike  · 技术社区  · 8 年前

    我在博客应用程序中使用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)
    

    我想知道在使用jdlstudio.jh定义文件的jdl导入时是否有任何方法可以获得delete cascade,如果不可能,是否有人知道如何最好地完成它。一如既往,任何榜样都是伟大的!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Jon Ruddell    8 年前

    这不能在JDL中声明。如果要层叠删除,请将该属性添加到关系批注中。例如:

    @OneToMany(mappedBy = "blog", cascade = CascadeType.REMOVE)
    private Set<Article> articles = new HashSet<>();
    
    推荐文章