Utilizzando le parole chiave JPQL riservati con JPA
Domanda
Ho una classe di entità denominata "Gruppo" e NetBeans mi avverte "Il nome della tabella impresa è riservata Java Persistence QL parola chiave".
Un caso simile potrebbe essere l'uso di parole chiave SQL riservate.
Sarà questo nome sia sfuggito? Sarebbe l'uso di un diverso nome della tabella di risolvere il problema @Table (name = "otherName"). O dovrei rinominare la classe?
Soluzione
Sarà questo nome sia sfuggito?
non nella specifica APP che dice così, se il vostro provider lo fa, questo è provider specifico.
sarebbe l'uso di un diverso nome della tabella di risolvere il problema @Table (name = "otherName")
Ovviamente, sarebbe (a patto che non si usa un'altra parola chiave riservata ovviamente). Ma se si utilizza un provider JPA 2.0, esiste un modo standard per ottenere un nome di oggetto db fuggito, con doppi apici:
@Table(name="\"Group\"")
In JPA 1.0, non è standard niente, dipende dal vostro provider JPA. Ad esempio, Hibernate usa backticks:
@Table(name="`Group`")
O dovrei rinominare la classe?
No. Il nome della tabella di un'entità default è il nome dell'entità, ma è possibile controllarlo utilizzando l'annotazione @Table
come abbiamo visto. Non v'è quindi alcuna necessità di cambiare il nome della classe della vostra entità.
Altri suggerimenti
Non è necessario rinominare la classe - e non si deve - il nome che avete scelto riflette il dominio nel migliore dei modi, e non si deve cambiare a causa di limitazioni di utensili o di un quadro, nel caso in cui lo strumento / framework fornisce un modo per evitare lo "scontro". APP fornisce un modo.