【问题标题】:Eclipse Link @CascadeOnDelete not workingEclipse 链接 @CascadeOnDelete 不起作用
【发布时间】:2018-03-28 16:08:37
【问题描述】:

我正在使用EclipseLink 并拥有以下配置文件

orm.xml

pom.xml

由于此注释在 2.2 版中可用,并且我的配置显示为 2.6.3 版,所以它必须工作,我将注释应用为描述 here ,但它不起作用,我在删除我的父母时遇到异常实体。但是,在数据库级别添加 ON DELETE CASCADE 后,我可以删除。我想知道我错过了什么,因为无法从注释中实现它。

在我的orm.xml 中有一个下载xsd(即 2.0)的 url,它是旧的导致并且不明白它实际上是什么以及正在使用的 eclipse 链接的实际版本。

【问题讨论】:

    标签: java sql spring spring-data eclipselink


    【解决方案1】:

    @CascadeOnDelete 是告诉 JPA 您在数据库中使用了“ON DELETE CASCADE”选项,因此它不会发出删除语句并让数据库来执行。假设删除完成,它只会从缓存中清除缓存引用。如果您没有设置“ON DELETE CASCADE”数据库选项,那么您不应该使用@CascadeOnDelete,而是让 JPA 级联删除或在应用程序中手动处理它。

    您所指的 ORM xsd 是用于验证 ORM 的架构。它是根据 JPA 规范的第 2 版创建的,只要它实现了 JPA,它就不会说明或影响您决定使用的 EclipseLink 版本。

    【讨论】:

    • 谢谢先生的回复..如果我不使用注释并简单地在数据库上使用“ON DELETE CASCADE”,我想先确认两件事它有什么区别?第二,如果我既不使用注释也不使用 DB 级别而不是 JPA 处理它的方式,它是由 CascadeType.Remove
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2013-01-10
    • 2015-04-26
    • 2012-10-07
    • 2012-08-05
    • 2013-05-22
    相关资源
    最近更新 更多