2015-11-09 3 views
0

Допустимо ли иметь перечисления, определенные как константы в объектах спящего режима и использовать их через код?Определить перечисления в объектах 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); 
} 

Конечно, я могу определить класс перечислимую и использовать его, но что об этом подходе?

+0

Почему нет? Я не вижу никаких ограничений для этого ... – Andremoniy

+1

Не имеет никакого отношения к вашему вопросу, но '@ Transient' не требуется для статических полей. –

+0

JPA @Transient annotation используется для указания того, что поле не должно сохраняться в базе данных. Так что это очень связано с вопросом. –

ответ

0

Если вы используете таблицу классов только как DTO, это достаточно хорошо.

Если вы хотите использовать его как в качестве DTO и DAO, то вам нужно добавить @JsonIgnore вместе с @Transient

Смежные вопросы