Boa Tarde Pessoal,
Estou tentando configurar um servidor de aplicação em uma máquina com distribuição Debian e estou encontrando alguns problemas referentes a JPA. Fiz a instalação do Tomcat, do mysql (via apt-get). Aplicação “roda” tranquilamente, porém consultas JPA que utilizam CreateQuery não retornam nada. Se eu mudar o tipo de consulta para CreateNativeQuery eu obtenho resultado. Detalhe é que essa mesma aplicação roda no windows sem problema algum. Alguém poderia me ajudar nisso?
Abraços!
Não sei se é seu caso, mas as tabelas no MySQL no Linux são case sensitive. Se o nome da tabela for ‘tb_usuario’, por exemplo, consultas tipos ‘SELECT * FROM TB_USUARIO’ dão erro.
Pode ser isso, olhe os nomes das tabelas nos mapeamentos.
É. isso eu pude perceber nos meus testes, porém, quando uso o método CreateQuery do objeto EntityManager, eu utilizo os objetos, mas essa convenção para tabela não está acontecendo.Não vem nada!!Vou realizar mais testes essa semana. Obrigado pela resposta.
Filesystem do windows => TABELA = tabela
Filesystem do linux => TABELA != tabela
No linux, o nome da tabela deve ser idêntico… eu peguei o costume de criar todas com a letra minuscula, para não ter este tipo de problema!
lsjunior e clarel.filho, acho que a resolução vai ser por ai mesmo. Fiz um pequeno teste aqui e deu certo.Bom, não vou colocar como resolvido ainda pq irei “replicar” essa solução no meu projeto. Assim que eu de fato resolver, eu posto a resolução e encerro o caso. Desde já obrigado aos 2.
Foi isso mesmo que havia citado: atribui nas classes modelo do projeto o atributo (name=“nome_da_entidade”) na anotação @Entity dessas classes, e nas consultas ao invés de colocar a “from Entidade”, coloquei “from entidade”, feito isso, funcionou tranquilamente. Obrigado a todos! Abraço!
Exemplo :
No meu caso a tabela se chama “acesso”, a classe ficou “Acesso”,mas você coloquei @Entity(name=“acesso”) para que ele consiga identificar a tabela. Nas consultas, ficou :
Query query = entity.createQuery(“from acesso a”);
Vlw
Ps: onde coloco resolvido?
Att,
Para colocar resolvido, edite a primeira postagem e mude o assunto!
Abraço!