JPA 规范假定通常大多数应用程序默认情况下需要单例关系是急切的,而默认情况下多值关系是惰性的。至少根据我自己的经验,这通常是所需的架构。这是有道理的,因为单例关系在 JPA 层和 DB 层中不需要显着的额外性能就可以在外键上创建单例连接。然而,与此相反,多值属性创建 N + 1 问题或大型笛卡尔结果集,当使用连接提取时,随着集合中元素的数量和连接数量的增加,这些结果集会呈指数膨胀(尽管 Hibernate 特别无法处理2+ 急切的联想)。
话虽如此,至于您的建议,您需要解决一个特定的(老实说并非完全不常见的)案例。现在你有一个案例,但有数百个这样的案例。因此,要编写规范,您需要在泛化和粒度之间划清界限。
如果我站在你的立场上,如果你认为这是一个绝对有用的特性,可以添加到 JPA 规范中,我会将它提交给 JCP。另一方面,如果您在特定实现中解决了这个(、那个和那个......),那么您最终会陷入所谓的供应商锁定。所以我会额外工作一个小时来设置 @ManyToOne @OneToOne 属性的延迟获取并保持无供应商,因此如果说一个新的 JPA 实现比 Hibernate 快 15 倍以上(或任何你想要的实现),请坚持规范使用),将您的项目迁移到新的 JPA 实现几乎不需要任何努力。