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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top