繁体   English   中英

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

[英]How to create table of Java enum using 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不能为enum

通常,您不会使用可能的枚举值创建表(您已经在客户端获得了它们!)

您将改为将枚举的值存储在列中。 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; 

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM