【发布时间】:2022-10-17 01:16:07
【问题描述】:
首先,我确实搜索了这个问题,但每个答案都只是“将 ID 添加到视图中”,这在我的情况下是不可能的。
详细地说,我有一个用 Java 编写的后端,并且我正在使用 Hibernate。我需要从具有多个列的视图中恢复数据,这些列都不是唯一的,这意味着我不能将它们用作 ID。鉴于 Hibernate 要求 @Entity 有一个带有 @Id 注释的字段,这是一个问题。
我无法修改视图。
那么,最好的解决方案是什么?我目前的想法是编写一个新的 IdClass 用作复合 PK。
【问题讨论】:
-
请提供足够的代码,以便其他人可以更好地理解或重现该问题。
-
如果您的域对象必须是
@Entity,那么除了尝试将一组列标识为复合键之外,我认为您别无选择。如果这是不可能的,或者您的域对象不必是实体,那么解决方案取决于您正在使用的技术堆栈,即这里使用的是Spring Data JPA Projections。
标签: java database hibernate view primary-key