Si vais al código de la clase teneis javadoc explicado de como se hace y que es cada cosa
Todos los nombres de las entidades se ven afectadas por CustomPhysicalNamingStrategy
Si te fijas ninguna columna tiene @column, con esta clase no nos hace falta Todo camelCase se convertirá a mayúsculas y "SnakeCase"
Todas las entidades extienden de AbstractEntidadSimple
Esta clase tiene 6 campos id y nombre Depende el parámetro que pongas en la entidad padre el id será de un tipo u otro Es decir puedes hacer que el id sea una String un Integer o un Long en cada una de las clases Hijas (Siempre usamos Warpper)
Adicionalmente esta clase anteriormente mencionada tiene herencia con AbstractAuditable
Esta clase tiene 4 campos útiles de auditoria para cuando se persiste o modifica una entidad y otros 2 para saber quien ha hecho cada operación La implementación está hardcodeada porque aqui no he metido spring security
Adicionalmente tenemos una columna @version útil para poder usar la estrategia de hibernate llamada "optimistic locking mechanism" en el que creamos una manera segura de tratamiento de posibles updates y deletes concurrentes de una entidad
Entidad | Clave Primaria |
---|---|
Elementalista | ElementalistaPk |
Dominante | Esclavo | Peculiaridad |
---|---|---|
Rango | Técnica | |
Personaje | Oficio | Tabla intermedia |
TipoMagia | Mago | Comparte el mismo Id |
Dominante | Esclavo | Peculiaridad |
---|---|---|
Ninja | Ninjutsu |
Dominante | Esclavo | Peculiaridad |
---|---|---|
Poción | Alquimista | |
Invocador | InvocaciónSuprema | Tabla intermedia |
Dominante | Esclavo | Peculiaridad |
---|---|---|
Monje | TécnicaKi |
Dominante | Esclavo | Peculiaridad |
---|---|---|
Arma | Calidad | Tabla intermedia |
Dominante | Esclavo | Peculiaridad |
---|---|---|
Domador | Bestia |