Ho un'entità denominata LocationType
(BaseEntity
è una @MappedSuperclass
):Hibernate non mi permette di utilizzare entità nome della classe per il nome della tabella
@Entity
public class LocationType extends BaseEntity
Il nome della tabella generata per questa entità è location_type
. Capisco che la strategia di denominazione predefinita funzioni in questo modo.
Quello che non riesco a capire è il motivo per cui non posso forzare Hibernate ad usare il nome letterale, locationtype
. Non importa quello che faccio:
@Entity(name = "LocationType")
public class LocationType
o
@Entity
@Table(name = "LocationType")
public class LocationType
o
@Entity(name = "LocationType")
@Table(name = "LocationType")
public class LocationType
il nome della tabella sempre finisce come location_type
. Hibernate semplicemente sa meglio!
Se uso un altro nome
@Entity(name = "wtf")
poi il nome della tabella diventa wtf
pure.
È questo comportamento documentato? Sembra un insetto per me.
domanda simile: Hibernate ignores @Table(name = "...") for extended classes - created tablenames are all lower case (si riferisce alla mappatura ereditaria, però).
Quale versione di ibernazione stai usando? Inoltre stai usando annotazioni di ibernazione o annotazioni javax.persistence? – Vinc
Non vedo alcun problema se uso 'javax.persistence.Entity', puoi pubblicare ulteriori dettagli come qualsiasi proprietà specifica nel file hibernate.cfg.xml e la tua super classe ecc per capire il problema beter. – Chaitanya
Sia @Entity sia @Table provengono da '' javax.persistence''. La versione di ibernazione è 4.3.1. – MaDa