将Hibernate实体中的枚举定义为常量字符串

时间:2015-11-09 08:51:36

标签: java hibernate enums

在Hibernate实体中将枚举定义为常量并通过代码使用它们是否可以接受?

@Entity
@Table(name = "table", schema = "", catalog = "")
public class Table {

    @Transient
    public static final String STATUS_PENDING = "PENDING";
    @Transient
    public static final String STATUS_ACCEPTED = "ACCEPTED";
    @Transient
    public static final String STATUS_REJECTED = "REJECTED";

    private String status;

    @Basic
    @Column(name = "status", nullable = false, insertable = true, updatable = true, length = 8)
    public String getStatus() {
         return status;
    }

    public void setStatus(String status) {
         this.status = status;
    }
}

然后我可以使用它们:

if(status.equals(Table.STATUS_PENDING) {
     entityObject.setStatus(Table.STATUS_PENDING);
} 

当然我可以定义枚举类并使用它,但这种方法呢?

1 个答案:

答案 0 :(得分:0)

如果您仅将类Table用作DTO,这就足够了。

如果你想将它作为DTO和DAO使用,那么你需要添加@JsonIgnore和@Transient