【问题标题】:JPA Enum type as table in databaseJPA 枚举类型作为数据库中的表
【发布时间】:2018-05-29 18:22:08
【问题描述】:

所以,我的问题是下一个。如何将数据库中的枚举类型映射为表。我想要一个包含我的 Enum 值的表。我想在数据库中有这样的结构:Model

以及代码中类的这种结构:

@Entity
public class MainEntity implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @NotNull
    @Column
    private Integer id;

    @Column
    private Enum enum;

    @NotNull
    @Column
    private String any_other_attribute;

}
public enum Enum implements Serializable {
    First, Second, Third
}

【问题讨论】:

  • Java SE 枚举类型已嵌入Serializable。事实上,JVM 提供了坚如磐石的保证,即您的常量始终保持实例受控。您不应该将枚举类型声明为 Serializable
  • @scottb Java 枚举值实际上是可序列化的,而不是它可能包含的字段。这个问题您可能会感兴趣:stackoverflow.com/questions/15521309/…。现在我认为在枚举中包含可变字段是一种反模式,但这是另一回事......
  • 将枚举序数存储为查找表并不是一个好主意,因为这样会在 Java 和数据库中复制信息。如果您真的想这样做,请不要使用枚举,而只需使用具有 id 和名称的实体。

标签: java jpa enums


【解决方案1】:

关于 Enum with JPA 的详细解释见下面的链接 http://tomee.apache.org/examples-trunk/jpa-enumerated/README.html

您可以使用枚举注解。

@Enumerated(EnumType.STRING) 私人评级评级;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    相关资源
    最近更新 更多