【问题标题】:Java Hibernate entity of a View without an ID没有 ID 的视图的 Java Hibernate 实体
【发布时间】: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


【解决方案1】:

我最终使用了 IdClass 注释的复合键: https://www.baeldung.com/jpa-composite-primary-keys

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2023-01-27
    相关资源
    最近更新 更多