Exemplo de consulta usando Query

Olá amigos, td bom? Estava precisando fzer uma consulta ao banco usando um query, mas nunca usei query e estou tendo problemas com ela, rs. Estou fazendo um exemplos basico no qual ele faz um

select * from LEITURA. Segue o meu codigo de como está.

[code] try {

        Query query = session.createQuery("select * from LEITURA");
        listaLeituras = (ArrayList<Leitura>)query.list();
        transaction.commit();

    } catch (Exception e) {

        System.out.print("Erro: " + e.getMessage());
        e.printStackTrace();
        listaLeituras = null;

    } finally {
        session.close();
    }

    return listaLeituras;
}[/code]

E aqui e a minha entidade com as anotações:

[code]@Entity
@Table(name=“LEITURA”)
@Inheritance(strategy = InheritanceType.JOINED)
@XmlRootElement
public class Leitura implements Serializable{

private static final long serialVersionUID = 1L;

@Id
@Column(name="CODIGO", nullable = false)
private Integer codigo;

@Column(name="ANO", nullable = false)
private Integer ano;

@Column(name="MES", nullable = false)
private Integer mes;

@Column(name="HIDRO_CODIGO", nullable = false)
private Integer hidro_codigo;

@Column(name="DATA_LEITURA", nullable = false)
private Date data_leitura;

@Column(name="LEITURA_ATUAL", nullable = false)
private Integer leitura_atual;[/code]

Quando faço o debug ele gera o erro na Query, nao passa nem para a proxima linha, e gera essa excption:

[code]Grave: line 1:8: unexpected token: *
Informações: Erro: unexpected token: * near line 1, column 8 [select * from LEITURA]
Grave: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from LEITURA]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at br.com.agua.dao.LeituraDAO.buscarTodos(LeituraDAO.java:33)
at br.com.agua.resources.LeituraResource.TodosJSON(LeituraResource.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)

[/code]

Sera que algem pode me ajudar a resolver esse problema? Obrigado :smiley:

tente assim: Query query = session.createQuery("SELECT bean FROM Leitura bean");

Conforme o digaoneves já disse, você está utilizando JPQL do modo errado.

Leia esse post que ele vai te ajudar: JPA Consultas e Dicas.

[quote=jakefrog]Conforme o digaoneves já disse, você está utilizando JPQL do modo errado.

Leia esse post que ele vai te ajudar: JPA Consultas e Dicas.[/quote]

Vou dar uma estudada, obrigado pela ajuda

Obrigado digaoneves, funcionou dessa maneira como disse. Mas tenho uma duvida, existe um campo na tabela que ela eh chave estrangeira FK, no momento eu so preciso do codigo dela msm, e só. Teria necessidade de fazer anotação na entidade como @ManyToOne? Por que na consulta esta repetindo as informações.

Então, eu acredito que se é uma FK, você precisa anotar esse relacionamento, tem que definí-lo de alguma maneira sim.
Mas esse post do jakefrog vai te dar exemplos de tudo isso, ele parece extenso, mas na verdade é tudo na prática, então é fácil de ler e entender. seria bem bacana você ler ele, vai te adiantar muita coisa.