• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

Erros JPA – java.sql.SQLSyntaxErrorException: user lacks privilege or object not found

May 11, 2015 by Mauda Leave a Comment

Conteúdo do Post:
  1. Descrição do Erro
  2. Solução
  3. finally{

Olá Pessoal, tudo bom?

Hoje iremos falar sobre um erro de Mapeamento de Entidades JPA, mais especificamente da exception java.sql.SQLSyntaxErrorException: user lacks privilege or object not found

Descrição do Erro

Esse é um erro muito comum de acontecer ao trabalhar com banco de dados. Ele pode especificar 2 pontos. A tabela que está sendo chamada pelo SQL não existe ou a coluna sendo chamada pelo SQL não existe.

Ao mapear entidades via JPA é necessário que o nome da classe esteja de acordo com a tabela a ser referenciada. Caso os nomes da classe e tabela sem iguais, independente das letras serem minúsculas ou maiúsculas, não ocorrerá erro, mas caso sejam diferentes e não for utilizado a annotation javax.persistence.@Table, ocorrerá a exception descrita acima.

Outra forma de gerar erro é que os atributos de uma classe sejam mapeados para as colunas correspondentes da tabela que a classe referencia. Dessa forma é necessário utilizar a annotation javax.persistence.@Column para indicar ao JPA qual é a coluna que o atributo está referenciando. Caso o nome da coluna e o atributo sejam os mesmos, independente se for uma palavra composta por maiúsculas ou minúsculas, não é necessário inserir a annotation, visto que o JPA por padrão adota o nome do atributo como sendo o nome da coluna.

Para um dos dois casos acima ocorrerá um erro com uma stack trace parecida:

java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: nome
at br.pucpr.bsi.prog6.ticketsEventosBSI.dao.PatternDAO.insert(PatternDAO.java:96)
at br.pucpr.bsi.prog6.ticketsEventosBSI.bc.ArtistaBC.insert(ArtistaBC.java:29)
at br.pucpr.bsi.prog6.ticketsEventosBSI.tests.laboratorioBC.TesteArtistaBC.criar(TesteArtistaBC.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
… 35 more

Solução

A solução para este erro é inserir a annotation javax.persistence.@Table sobre o nome da classe ou inserir a annotation javax.persistence.@Column acima do atributo da classe que deseja referenciar a coluna, como mostra o código abaixo:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package br.com.mauda.example.model;
 
import java.io.Serializable;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
 
@Entity
@Table(name="ARTIST")
public class Artista implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = javax.persistence.GenerationType.IDENTITY)
private Long id;
 
@Column(name="NAME")
private String nome;
//outros atributos, métodos e construtores
}

finally{

Caso você achou mais alguma solução para essa exception, por favor deixe nos comentários abaixo!

Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!

Até um próximo post!

Filed Under: Erros, Hibernate, Java, JPA Tagged With: Entidades, Erros, Exceptions, Hibernate, Java, JPA, Mapeamento

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2026 · Genesis Framework · WordPress · Log in