如何使用Eclipselink创建Java枚举表?

时间:2014-05-12 12:41:41

标签: java jpa enums eclipselink

我希望Java枚举类由可以在数据库表中找到的值定义。

这可能吗?怎么样?

我试着走另一条路: 我想知道是否可以让Eclipselink为Java中使用的枚举创建数据库表? 让我们说,我有一个名为Status的枚举,值为:AVAILABLE和OUT_OF_ORDER。 如何让JPA创建相关的数据库表(应该是某种查找表,以确保此表中包含的值只能在任何其他表的列中使用)?

另一个例子是一个带有类(或表)的记录库Record有一个属性(列)' recordType'。

public enum RecordType {
NONE,
LP,
SINGLE
}

如何告诉JPA / Eclipselink创建一个名为recordType的表? 使用JPA工具 - >使持久性最终在persistence.xml中出错:列出的类RecordType不能是枚举

1 个答案:

答案 0 :(得分:2)

通常,您不会创建一个包含枚举值的表格(您已在客户端获得它们了!)

您将在列中存储枚举的值。 JPA允许您存储枚举值0,1,2 ...(非常不鼓励)或字符串值(AVAILABLE,...更好!)

@Table(name = "the_name_of_your_table")
public class YourClass {

  @column(name = "the_column_name")
  @Enumerated(EnumType.STRING) // <-Tells JPA to store the enum as a String
  private Status status; 

}