È una situazione abbastanza comune nelle nostre applicazioni che alcune entità devono essere rappresentate da un enum: per esempio tipi, categorie, stato e cose del genere.Come gestire la duplicazione tra java enum e tabella del database?
Spesso, nel codice sono presenti condizioni o flussi che utilizzano i valori per decidere tra un'azione o un'altra, pertanto i valori devono essere "noti" in qualche modo per l'applicazione (ovvero deve essere in grado di fare riferimento a un'istanza specifica da decidere invece di fare riferimento alla classe nel suo insieme). Questo è il motivo per cui usiamo le enumerazioni invece di una semplice lezione.
Il problema è che queste entità devono anche essere memorizzate (o almeno referenziate) nel database, come campi di altre entità. Generalmente creiamo una tabella per ogni entità, per essere in grado di effettuare controlli dell'integrità referenziale in queste colonne e anche che i dati abbiano un "significato" nel solo database senza la necessità di fare riferimento all'enumerazione per scoprire cosa significa ogni id .
Idealmente, i dati per queste entità devono essere compilati dai dati nell'enumerazione, ma oggigiorno abbiamo i valori duplicati negli script di inizializzazione del db.
Diventa un po 'più complicato quando si utilizza un ORM come Hibernate.
Mi piacerebbe sapere come le altre persone gestiscono questo tipo di situazione.
Non mi sento completamente a mio agio con l'idea di avere una duplicazione tra un enum e una tabella di database, ma non ho ancora trovato una soluzione migliore.
Questo è stato chiesto molte volte prima - guarda i link "correlati" sul lato destro –