Boa Noite Galera,
Faz um tempo que não consigo resolver um problema, por isso peço a ajuda de vocês.
Primeiro, o erro:
Abr 21, 2012 10:49:32 PM org.hibernate.util.JDBCExceptionReporter logExceptions
Advertência: SQL Error: 1064, SQLState: 42000
Erro em Pais - listarTodos: org.hibernate.exception.SQLGrammarException: could not execute query
Abr 21, 2012 10:49:32 PM org.hibernate.util.JDBCExceptionReporter logExceptions
Grave: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'pais.listarTodos' at line 1
Agora a classe Pais
@NamedQueries({
@NamedQuery(name="pais.listarTodos", query="select p from pais p")
})
@Entity(name="pais")
public class Pais implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Column(name="nome", length=60, nullable=false, unique=true)
private String nome;
@OneToOne(mappedBy = "pais")
private Endereco endereco;
public Pais(){
}
//getter and setter
e o DAO:
public class PaisDao {
private Conexao conexao;
private EntityManager manager;
public PaisDao() {
this.conexao = new Conexao();
}
private void inicializaConexao() {
if (this.manager == null) {
this.manager = this.conexao.getConexao();
}
}
public List<Pais> listarTodos() {
this.inicializaConexao();
List<Pais> listaPaises = new ArrayList<>();
try {
this.manager.getTransaction().begin();
listaPaises = this.manager.createNativeQuery("pais.listarTodos").getResultList();
this.manager.getTransaction().commit();
} catch (Exception e) {
System.out.println("Erro em Pais - listarTodos: " + e.getMessage());
} finally {
this.manager.close();
}
return listaPaises;
}
}
Dá um erro, na hora que listo os dados da classe Pais, pelo que entendi, é erro de SQL, mas não consigo ver esse tal erro, devo estar viciado d+ no código.
Para que saibam, a classe pais tem relacionamento OneToOne com a endereço.
Podem me ajudar?