Você está na página 1de 1

M APEAMENTO 16

A tabela correspondente à classe Turma possuirá um campo chamado periodo. Nos registros
correspondentes às turmas de período matutino, esse campo possuirá o valor 0. Já nos registros
correspondentes às turmas de período noturno, esse campo possuirá o valor 1.

Imagine que um novo período é adicionado, digamos, o período vespertino. Nesse caso, o Enum
Periodo poderia vir a ser:

1 @Entity
2 public enum Periodo {
3 MATUTINO ,
4 VESPERTINO ,
5 NOTURNO
6 }

Código Java 2.13: Periodo.java

Os valores já armazenados no banco de dados poderiam estar incorretos. Por exemplo, antes
dessa modificação, o campo periodo das turmas noturnas deveria armazenar o valor 1. Após essa
modificação, o valor correto passa a ser 2. Assim, os valores do campo periodo da tabela Turma
devem ser atualizados de acordo. No entanto, essa atualização não é automática, e deve ser feita
manualmente.

Para evitar esse problema, podemos fazer com que os elementos de um Enum sejam associados
a uma string ao invés de um número inteiro. Isso pode ser feito com o uso da anotação @Enumerated.
Observe o exemplo abaixo.

1 @Entity
2 public class Turma {
3 @Id
4 @GeneratedValue
5 private Long id ;
6
7 @Enumerated ( EnumType . STRING )
8 private Periodo periodo ;
9 }

Código Java 2.14: Turma.java

Nesse exemplo, os elementos MATUTINO, VESPERTINO e NOTURNO do Enum Periodo serão associa-
dos às strings "MATUTINO", "VESPERTINO" e "NOTURNO", respectivamente.

Coleções

Considere um sistema que controla o cadastro dos funcionários de uma empresa. Esses funcio-
nários são modelados pela seguinte classe.

1 @Entity
2 public class Funcionario {
3
4 @Id @GeneratedValue
5 private Long id ;
6
7 private String nome ;
8 }

Código Java 2.15: Funcionario.java

16 www.k19.com.br

Você também pode gostar