JPA 提供者:为什么与非 PK 列的关系/FK 在 Hibernate 和 EclipseLink 中有效?

2024-02-17

我刚刚发现 JPA 不支持非主键列的正式关系/外键。看这里:

JPA 规范是否允许引用非主键列? https://stackoverflow.com/questions/5818373/jpa-does-the-jpa-specification-allow-references-to-non-primary-key-columns

为什么这样的关系在 Hibernate 和 EclipseLink 中映射(仅在 JPA 1.0 语法中,如发布的示例中所示)?

看来这些 JPA 提供者只是天真地映射列,我认为这是一件好事,但我想明确地知道。是巧合吗?是故意的吗?


支持引用非 PK 列的 FK 是一个可选功能(而且总是如此,因此没有“JPA 1.0 语法”,我之前的答案是不正确的):

对不是引用表主键列的引用列的支持是可选的。 使用此类映射的应用程序将不可移植。

然而,休眠支持它 http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#entity-mapping-association:

它还有一个名为referencedColumnName 的参数。此参数声明目标实体中将用于连接的列。请注意,当对非主键列使用referencedColumnName 时,关联的类必须是可序列化的。另请注意,非主键列的referencedColumnName 必须映射到具有单个列的属性(其他情况可能不起作用)。

不过,正如已经发现的那样,这种关系不能用作派生身份的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JPA 提供者:为什么与非 PK 列的关系/FK 在 Hibernate 和 EclipseLink 中有效? 的相关文章

随机推荐

  • 如何使用 don't cares 参数化 case 语句?

    我有一条称为输入的电线 我想检测前导的数量 我正在尝试创建一个模块 该模块使用下面的 case 语句根据前导零的数量更改输出数据 然而 输入的大小是可参数化的 如果 X 是固定值 4 我将创建一个 case 语句 case input 4
  • 客户端服务器端模板nodejs

    我正在使用 Node js 开发一个 Web 应用程序 我最初只想使用服务器端 hbs 模板 但后来我发现了客户端模板的主干 我发现它可以从服务器获取数据 然后使用 hbs 模板显示它 而不是服务器端生成整个 html 页面并发送 但后来我
  • 有没有比升级到 Visual Studio 2010 Ultimate 更便宜的负载测试方法

    我有 Visual Studio 2010 Professional 许可证 所以 Ultimate 还很遥远 我想要的只是进行几周左右的负载测试 有没有一种更便宜的方法来获得 VS2010 Ultimate 的负载测试部分 或者具有负载测
  • 存储库应该实现 UnitOfWork 吗?

    在 DDD 模式中 工作单元应该与存储库耦合吗 我见过几个不同的示例 包括实现工作单元接口的存储库 实现工作单元本身行为的存储库 以及具有表示工作单元的属性以便可以在各个工作单元之间共享的存储库 UoW 生命周期内有多个存储库实例 对于后者
  • MBProgressHud 与 gif 图像

    我可以使用 gif 图像代替默认加载指示器吗 到目前为止我正在使用这段代码但没有得到任何结果 谁能建议这段代码有什么问题吗 import UIImage GIF h void showLoadingHUD NSString title se
  • 启用 mod_http2 并在conf文件中设置协议后,HTTP/2配置未运行[重复]

    这个问题在这里已经有答案了 在看似正确的安装之后 HTTP 2 似乎并未运行 我运行的是 CentOS 7 我安装了最新版本的 Apache 版本 httpd 2 4 35 5 el7 x86 64 并一直在尝试让 HTTP 2 正常工作
  • 自定义实体具体化

    有没有办法使用 EF6 注入自定义对象实例创建器 我需要做的是在矩阵化发生之前向 EF 提供实体实例 基本上我希望能够使用非无参数构造函数定义 POCO 实体 以便能够使用 DI 聚合 最终使用 EF 进行持久化 我知道我可以使用对象物化事
  • HTML 表单只读 SELECT 标签/输入

    根据 HTML 规范 selectHTML 中的标签没有readonly属性 只有一个disabled属性 因此 如果你想阻止用户更改下拉菜单 你必须使用disabled 唯一的问题是禁用的 HTML 表单输入不会包含在 POST GET
  • 如何使用多个其他列中的所有非 NA 值创建新列?

    我想创建一个列 d 其中包含其他列中的所有非 NA 值 我尝试了 ifelse 但无法弄清楚如何使其以正确的方式嵌套 以便也包含 c 列中的值 也许应该使用 ifelse 之外的其他东西 这是一个 虚拟 数据框 a lt c NA NA N
  • Chart.js 中的水平条形图

    我正在尝试使用 Chart js 2 3 0 绘制水平条形图 var MeSeContext document getElementById MeSeStatusCanvas getContext 2d var MeSeData label
  • 成员函数 .begin() 和 std::begin()

    调用成员函数 begin of std vector and std begin 右值会导致不同的输出 如以下测试所示 vector
  • 如何在 Python 2.7 中使用函数注释

    我在Ipython中看到了这个源代码 https github com ipython ipython blob e1e2e960315f0f98703f6b8b077b10c99d04d70a IPython core completer
  • 如何在 Android 的 Spinner View 中添加左侧可绘制元素

    您好 我正在尝试添加左侧可绘制对象Spinner但我没有找到任何属性 就像你在EditText using android drawableLeft drawable password drawable 有没有正确的方法可以实现相同的目标S
  • 如何在 Codeigniter 中播种数据

    迁移后如何在 CodeIgniter 中播种数据 迁移完成后 我想在表用户迁移后植入一些预定义用户 defined BASEPATH OR exit No direct script access allowed class Migrati
  • 如何在sql中获取上周的最后一天?

    如何在sql中获取上周的最后日期 我的意思是使用查询的上周日日期 无论实际的 DATEFIRST 设置如何 上周日都可以这样找到 SELECT DATEADD day 1 DATEPART weekday GETDATE DATEFIRST
  • 下载 csv 文件作为 AJAX 请求的响应

    我有一个名为 downloadUserAction 的端点 用于收集数据并下载 csv 文件 我面临的挑战是 使用单击功能上的按钮调用端点时不会下载该文件 但只有当我直接在浏览器中访问端点时才会下载该文件 经过研究 我发现不能使用 AJAX
  • 设置RatingBar Android中显示的星星数量下限

    使用android中的RatingBar小部件 您可以设置要显示的星星数量 但是有没有办法设置始终处于活动状态的星星数量的下限 举个例子 对一部电影或其他东西进行评分 但您不能提交 1 分的评分 如果严格来说这在框架中是不可能的 您可以使用
  • 如何将 Dialogflow v2 与 Angular 7 集成

    我正在使用 Dialogflow 构建一个聊天机器人 并使用内联编辑器将云函数部署到 firebase 然而 与 V1 相比 没有 javascript SDK 来与 API 交互 我被困住了 在文档中找不到任何有用的东西 您能否分享一些有
  • Xcode 6 / iOS 8 模拟器数据和 Bundle 文件夹脚本

    在 xcode 6 的最新更改中 app 文件和文档文件夹似乎不再驻留在 iPhone 模拟器目录中的同一文件夹中 以前 我们可以访问目录和 app 文件 Users me Library Application Support iPhon
  • JPA 提供者:为什么与非 PK 列的关系/FK 在 Hibernate 和 EclipseLink 中有效?

    我刚刚发现 JPA 不支持非主键列的正式关系 外键 看这里 JPA 规范是否允许引用非主键列 https stackoverflow com questions 5818373 jpa does the jpa specification