Question

J'ai une classe d'entité appelée « Groupe » et NetBeans me prévient « Le nom de la table d'entité est un mot-clé Java Persistence QL réservé ».

Un cas similaire serait l'utilisation de mots-clés SQL réservés.

Est-ce que ce nom soit échappé? Est-ce que l'utilisation d'un nom de table différente résoudre le problème @Table (name = « otherName »). Ou devrais-je renommer la classe?

Était-ce utile?

La solution

  

Est-ce que ce nom soit échappé?

Il est rien dans la spécification JPA qui le dit, si votre fournisseur ne, ceci est spécifique fournisseur.

  

L'emploi d'un nom de table différent résoudre le problème @Table (name = "otherName")

De toute évidence, il serait (aussi longtemps que vous n'utilisez pas un autre mot-clé réservé bien sûr). Mais si vous utilisez un fournisseur JPA 2.0, il existe un moyen standard pour obtenir un nom d'objet db échappé, avec des guillemets doubles:

@Table(name="\"Group\"")

Dans JPA 1.0, il est standard rien, cela dépend de votre fournisseur de JPA. Par exemple, Hibernate des backticks:

@Table(name="`Group`")
  

Ou devrais-je renommer la classe?

Non. Le nom de la table d'une défaillance de l'entité au nom de l'entité, mais vous pouvez contrôler à l'aide de l'annotation @Table comme nous l'avons vu. Il n'y a donc pas besoin de changer le nom de la classe de votre entité.

Autres conseils

Vous ne devez pas renommer la classe - et vous ne devriez pas - le nom que vous avez choisi reflète votre domaine de la meilleure façon, et vous ne devriez pas changer en raison des limitations de l'outil ou cadre, dans le cas de l'outil / cadre fournit un moyen d'éviter le « choc ». JPA fournit une telle manière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top