gpt4 book ai didi

java - 组件类型可以映射到 hibernate 中的实体类型吗?

转载 作者:行者123 更新时间:2023-12-02 06:45:33 24 4
gpt4 key购买 nike

假设我有一个依赖于用户类的地址类。地址是组件类型。地址类可以包含对任何其他实体(例如国家/地区)的引用。

如果是的话?

所有 4 种关系都可能与地址和国家/地区相关吗

一对一

多对一

多对多

一对多

如果可能,请用一些 JPA 注释进行解释

最佳答案

[已更新] 组件是“独立值”或“值对象”。 部分支持出站关系,以及符合mappedBy规范的入站关系,但“组件”不是一流的“实体”。

许多持久性功能——查询、缓存、锁定、批量加载和 session 控制功能都主要在“实体”级别设计。超过某一点,您可以使用“组件”执行的操作将会受到限制。您是否会遇到此类限制取决于您的深入程度。

但实际上对您的场景进行建模时,带有外键的 Country 表的实用性是有限的。因此,最正确的设计可能是保持 Address.Country 非规范化并通过自动完成来支持它。

这是首选方法的原因:

当国家确实更改名称或边界时,通常不会以“相对正常化”的方式进行。例如,南斯拉夫->克罗地亚、塞尔维亚、黑山。苏丹 -> 苏丹、南苏丹。有争议的边界转移和国家 split ,但实际上能够重新命名一个明确的国家并不常见。

与人比较:人们有稳定的身份并且可以更改他们的姓名/地址,但国家并没有以非常有用的方式实现这一点。

关于java - 组件类型可以映射到 hibernate 中的实体类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18672312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com