Pergunta

Eu tenho uma classe de entidade chamada "Grupo" e o NetBeans me avisa "O nome da tabela de entidades é uma palavra -chave Java Persistence Java".

Um caso semelhante seria o uso de palavras -chave SQL reservadas.

Esse nome será escapar? O uso de um nome de tabela diferente resolveria o problema @Table (name = "OtherName"). Ou devo renomear a classe?

Foi útil?

Solução

Esse nome será escapar?

nada Na especificação JPA que diz isso, se o seu provedor o fizer, isso é específico do provedor.

O uso de um nome de tabela diferente resolveria o problema @Table (name = "OtherName")

Obviamente, seria (desde que você não usasse outra palavra -chave reservada, é claro). Mas se você estiver usando um provedor JPA 2.0, existe uma maneira padrão de escapar de um nome de objeto DB, com cotações duplas:

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

No JPA 1.0, não há nada de padrão, depende do seu provedor JPA. Por exemplo, o Hibernate usa backsticks:

@Table(name="`Group`")

Ou devo renomear a classe?

Não. O nome da tabela de uma entidade padrão no nome da entidade, mas você pode controlá -lo usando o @Table anotação como vimos. Portanto, não há necessidade de alterar o nome da classe da sua entidade.

Outras dicas

Você não precisa renomear a classe - e não deve - o nome que escolheu reflete seu domínio da melhor maneira, e você não deve alterá -lo devido a limitações de ferramentas ou estrutura, caso a ferramenta/estrutura forneça um maneira de evitar o "Clash". O JPA fornece dessa maneira.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top