【问题标题】:JPA Foreign Key Restrict On DeleteJPA外键限制删除
【发布时间】:2021-07-24 01:13:38
【问题描述】:

是否可以仅使用 JPA 注释而不在 DB 中强制执行 FK 约束? 我想限制/不执行删除操作以强制在父表中使用 FK 引用时不能删除它。但是,如果不在数据库级别添加 FK 约束,我无法完成此功能。

这是可能的还是需要将约束也添加到数据库中?

谢谢

【问题讨论】:

    标签: database spring-boot jpa foreign-keys constraints


    【解决方案1】:

    不,这是不可能的。 JPA 依赖 DB 来强制执行 FK 约束。

    借助 Hibernate,您可以使用 @SqlDelete 提供自定义删除查询。你可以例如使用一个程序来检查约束是否会被违反。不过,我想这不是您想要的。

    【讨论】:

    • 感谢您的回答!这是您阅读的文档中的某个地方还是仅来自经验?因为对我来说奇怪的是 Cascade 功能只需要注释就可以正常工作。
    • 两者。文档中没有任何内容表明 JPA 付出了额外的努力来强制执行 FK 约束。虽然这样做不会违反规范,但我从未见过任何 JPA 实现这样做
    猜你喜欢
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    相关资源
    最近更新 更多