[Resolvido] Erro em mapeamento

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?

Tem que ser o nome da classe em sua consulta da NamedQuery e não pais com letra minúscula, mas sim Pais.

Aqui tem diversos modos de se fazer a query, talvez possa te ajudar: http://uaihebert.com/?p=1137

Você criou uma consulta em HQL e está tentando executar em um método de SQL.

Para usar o createNativeQuery(), você deve fazer a consulta em SQL (select * from pais p) e não HQL (select p from pais p).
Para executar a consulta em HQL, use o método createNamedQuery().

jakefrog
Então, mas mapiei ela com letra minuscula, tanto que se tentar com letra maiúscula, dá erro

romarcio
Ptz cara era isso mesmo.
Que vacilo.

Obrigado a vocês pela ajuda.
Valeu mesmo.