Olá a todos. Estudando JPA gostei da ideia de usar enumerações para mapear os atributos em minha classe, o código fica bem elegante e orientado a objetos, mas tenho dúvidas se posso ter enumerações no código java refletindo o banco de dados, vou explicar melhor com a situação:
tenho um banco legado, nesse banco tenho as tabelas situacao_remessa, periodo e tipo_remessa, acontece que os valores dessas tabelas são fixos, pelo menos em 7 anos que estou na empresa esses valores nunca mudaram, exemplo:
situacao
id nome
1 aberta
2 enviada
tipo_remessa
id nome
1 rgf executivo mun
2 rgf lesgilativo mun
3 rreo executivo mun
periodo
id nome
1 primeiro bimestre
2 segundo bimestre
3 terceiro bimestre
atualmente mapeio a entidade remessa dessa forma:
@Entity
public class Remessa{
@Id
private Long id;
@ManyToOne
private TipoRemessa tipoRemessa;
@ManyToOne
private Periodo periodo;
@ManyToOne
private Situacao situacao;
}
como estes valores são fixos, no código ficaria bem mais legal utilizar enumerações que ficar mapeando ManytoOne, pois sempre que inicializo um objeto remessa, eu tenho que inicializar ela com uma situacao, tipo e periodo e do jeito que está sempre tenho que ir no banco, outra coisa chata é quando quero mudar o status, sempre tenho que executar a consulta, utilizando enums eu faria apenas this.situacao = Situacao.ENVIADA , bem mais simples.
Gostaria de substituir este ManyToOne por Enums, mas nessa tabela remessa já tem dados com chaves estrangeiras para as tabelas citadas acima,então preciso de uma forma de utilizar as enums no código mas que estas possam refletir o banco já existentes, ou seja quando eu fizer this.situacao = Situacao.ENVIADA ele deve salvar o valor "2" na tabela remessa no campo situacao_id, é possível ?