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 |