Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从JPA实体在MySql中生成枚举类型_Java_Jakarta Ee_Jpa_Java Ee 7 - Fatal编程技术网

Java 无法从JPA实体在MySql中生成枚举类型

Java 无法从JPA实体在MySql中生成枚举类型,java,jakarta-ee,jpa,java-ee-7,Java,Jakarta Ee,Jpa,Java Ee 7,我正在使用JPA2.1。我想生成mysql枚举类型列,如:gender enum('male','female')。我的枚举类是 public enum Gender { MALE, FEMALE } 在JPA实体类中 @Enumerated private Gender gender;//generate int type column 及 有没有办法在MySql中生成枚举类型列?如果要在数据库中使用字符串枚举值,则列类型必须是基于数据库服务器的varcharbase。实际上,我不

我正在使用JPA2.1。我想生成mysql枚举类型列,如:
gender enum('male','female')
。我的枚举类是

public enum Gender {
  MALE,
  FEMALE
}
在JPA实体类中

@Enumerated
private Gender gender;//generate int type column


有没有办法在MySql中生成枚举类型列?

如果要在数据库中使用字符串枚举值,则列类型必须是基于数据库服务器的
varchar
base。实际上,我不清楚
我想对mysql枚举类型列进行genrate
。但是,如果您想显示输出
MALE
MALE
,请参考以下内容:

public enum Gender {
    FEMALE("female"), MALE("male");

    private String label;

    private Gender(String label) {
        this.label = label;
    }

    public String getLabel() {
        return label;
    }
}
试算表

public static void main(String args[]) {
    System.out.println(Gender.MALE)
}
输出:男性使用以下代码:

public enum Gender {
    MALE, FEMALE;
}

@Enumerated(EnumType.STRING)
@Column(columnDefinition = "ENUM('User', 'Moderator', 'Admin')")
public Role role;
}

您可能想尝试一下-这不仅不能编译,而且它混淆了
性别
角色
,因此无法回答问题,也无法解释任何内容。为什么人们会对此投赞成票?虽然这个例子放在一起很疏忽,但这是我能找到的唯一答案,它显示了如何使用JPA将枚举映射到实际的SQL枚举类型,而不是仅将枚举值存储在不安全的数字或字符串类型中。枚举类型ANSI兼容吗?enum是在标准SQL中定义的还是仅用于MySQL?在这种情况下:这个解决方案不是将
@Entity
类(I asume
Person
或类似的东西)与DB表(以及DBMS)耦合在一起吗?
public enum Gender {
    MALE, FEMALE;
}

@Enumerated(EnumType.STRING)
@Column(columnDefinition = "ENUM('User', 'Moderator', 'Admin')")
public Role role;
}