Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
如何在JavaPOJO类中编写枚举列?_Java_Hibernate - Fatal编程技术网

如何在JavaPOJO类中编写枚举列?

如何在JavaPOJO类中编写枚举列?,java,hibernate,Java,Hibernate,在我的数据库中,我有一列enum数据类型。以下是表格结构 CREATE TYPE STATUSENUM AS ENUM('Published','Draft','Expire'); CREATE TABLE IF NOT EXISTS T_COMMODITY_INSIGHT( ID integer NOT NULL, COMMODITY_ID integer NOT NULL, CREATED_DATE date NOT NULL, MODIFIED_DATE d

在我的数据库中,我有一列enum数据类型。以下是表格结构

CREATE TYPE STATUSENUM AS ENUM('Published','Draft','Expire');
CREATE TABLE IF NOT EXISTS T_COMMODITY_INSIGHT(
    ID integer NOT NULL,
    COMMODITY_ID integer NOT NULL,
    CREATED_DATE date NOT NULL,
    MODIFIED_DATE date NOT NULL,
    STATUS STATUSENUM DEFAULT 'Draft',
    CONSTRAINT "T_COMMODITY_INSIGHT_pkey" PRIMARY KEY (ID)
);
在我的POJO类中,如何使用getter和setter方法以及接受用户输入值的参数化构造函数编写enum列&如何确保enum列的输入值必须是数据库中定义的值

我正在使用Hibernate


如果需要其他信息,请告诉我。

在JPA中,您可以在java类文件中使用:

@Enumerated(EnumType.STRING)
@Column(name = "status")
private StatusEnum status = StatusEnum.DRAFT;

public StatusEnum getStatus() {
    return status;
}

public void setStatus(StatusEnum status) {
    this.status = status;
}
状态枚举:

public enum StatusEnum {
    DRAFT, SENT
}

让我们看看POJO课程。你在使用JPA吗?@lore-是的,HibernateGod问题(投票结果:)-我们需要创建StatusEnum类型的单独类或接口吗?因为我对如何在pojo类中编写有点困惑。嘿,Spara-我也这么做了,但我得到了一个错误->org.postgresql.util.PSQLException:错误:列“status”的类型是statusenum,但表达式的类型是字符变化提示:您需要重写或强制转换表达式。@Ayusgoyal您不应该创建statusenum表,只需删除该表并创建一个列名称
stats
,该列的类型为
varchar(255)
Hey Spara-它起作用了。非常感谢您:)但是现在,我如何设置字段状态的默认值。比方说Draft.@AyushGoyal您可以为varchar列设置如下默认值:
state varchar(255)default'Draft'