Насколько приемлемо перечисление (enum) в POJO классе для базы данных
Мне очень смущает вопрос про внутренние классы, перечисления в POJO объекте.
@Entity
@Data
public class Employee {
@Id
@GeneratedValue(GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
private Role role;
private BigDecimal salary;
public static enum Role {
ENGINEER, MARKETER
}
}
- Будет ли лишнюю память занимать каждый такой POJO объект (экземпляр) в базе данных или вообще?
- Скажите, пожалуйста, как лучше сделать эту «схему ролей»: в отдельном классе или оставить как есть?
Ответы (1 шт):
Автор решения: kyt3
→ Ссылка
Насколько я знаю:
- enum всегда статика, поэтому static можно убрать.
- enum это Singletone на уровне самой JVM.
Соответственно лишнюю память такой подход занимать не будет.
Как видно роли имеются в виду только работники с ролями... Поэтому в таком подходе все норм, но может меня кто-то поправит.
Если у Вас еще будет класс в котором используются такое же перечисление - имеет смысл вынести enum отдельно.