如何在JavaPOJO类中编写枚举列?
在我的数据库中,我有一列enum数据类型。以下是表格结构如何在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
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'