JPA 是否支持注释(或 xml 标签声明)来声明 ON DELETE(设置 null、级联等)等约束?

发布于 2024-10-18 03:39:58 字数 288 浏览 1 评论 0原文

我使用 JPA 创建数据库,更确切地说是 JPA 的 hibernate 实现。但无论如何,首先,我的问题与 JPA 有关。 让我们做一个场景。我有两个表 A、B,需要通过外键创建从 A 到 B(即一对多)的关系。所以表 B 有列 A_id。我希望能够级联我在 A 记录上完成的操作。例如:如果我删除 A 的元组,则与已删除的 A 元组相关的所有 B 元组也将被删除。我知道使用 hibernate @OnDelete 注释可以做到这一点,但如果您使用 hibernate 以外的表,我也想做到这一点。是否可以通过 JPA 实现?(或通过 hibernate)

I've used JPA to create a database, more exactly the hibernate implementation of JPA. But anyway, at first, my question is related to JPA.
Let's do a scenario. I have two tables A, B and need to create a relationship from A to B (ie. one to many) by a foreign key. So table B has the column A_id. I want to make possible to cascade my actions done on A records. For example: if I delete an A's tuple, all B's tuples related to deleted A's tuple will be also deleted. I know this is possible using hibernate @OnDelete annotation, but I want to do that achievable also if you use tables other than by hibernate. Is it possible by JPA implementation?(or by hibernate)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

疯了 2024-10-25 03:39:58

JPA不支持通过元数据(XML/注释)定义FK约束,仅支持是否级联。 JDO 是唯一定义 FK 细节的持久性规范。您需要使用 JPA 供应商特定信息来实现您的需求。

JPA does NOT support FK constraint definition by metadata (XML/annotations), only whether to cascade. JDO is the only persistence spec to define FK details. You need to use JPA vendor-specifics to achieve what you need.

挽容 2024-10-25 03:39:58

Oracle 支持外键约束上的 ON DELETE CASCADE ,所以我不明白为什么它不能使用,无论您是否使用 Hibernate(它只是 JDBC 之上的一层)。

我怀疑您是否能够使用 JPA 注释来定义这个子句,但无论如何,除了快速的脏测试之外,数据库模式不应该由 Hibernate 创建,而应该由特定的脚本(处理表空间,索引、命名约定等)

Oracle supports ON DELETE CASCADE on foreign key constraints, so I don't see why it couldn't be used, whether or not you use Hibernate (which is just a layer on top of JDBC).

I doubt you'll be able to define this clause using JPA annotations, but anyway, other than for a quick n' dirty test, the database schema shouldn't be created by Hibernate, but by a specific script (which handles table spaces, indexes, naming conventions, etc.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文