JPA 使用 `Enum` 作为 `@Id` 和 `@IdClass`

标签 jpa

我找到了一个与此主题相关的论坛。 Using enum as id

但我不确定我能不能做到。我认为我的情况有点不同。

enum Type {
}

class MyEntityId {
    String type;
    String key;
}

@Entity
@IdClass(MyEntityId.class)
class MyEntity {

    @Enumerated(EnumType.String)
    @Id
    Type type;

    @Id
    String key;
}

这实际上符合规范吗?
如果是,我可以不用担心供应商的特定行为吗?

最佳答案

为什么不阅读链接的问题?它引用了规范(2.1.4)并说“不”,你不能有枚举类型的 id 字段;你有一些(无效的)IdClass 并不重要(因为 IdClass 的类型必须与类的类型匹配)。因此它不是 JPA 规范的一部分,因此您只能执行特定于供应商的行为。

关于JPA 使用 `Enum` 作为 `@Id` 和 `@IdClass`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9801379/

相关文章:

java - Hibernate:选择 OneToMany 关系中的位置

java - JPA 2.1 StoredProcedureQuery 与 PostgreSQL 和 REF_CURSORs

java - JPA ManyToOne 字段未存储

java - 带有可视化图表的 JPA 数据库建模器

java - 导入 javax.persistence.EntityManager 错误

java - 找不到引用的 bean 'jpaMappingContext'

jsf - 使用jpa批量插入eclipselink

java - 具有集合成员的可序列化 JPA 实体

java - 如何在 JPA 条件查询中使用 Oracle 的 'connect by' 子句?

java - 如何修改列值? (日本公共(public)事务局)