Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Consultar Mes e Dia no JPQL

Boa noite, Eu tenho esse comando do MYSQL que retorna o DIA e MES de uma data:

SELECT EXTRACT(DAY FROM CURRENT_DATE(), EXTRACT(MONTH FROM CURRENT_DATE())  FROM aniversariante;

tentei pesquisar mas não achei como implantar esse comando no JPA, segue meu teste que provavelmente não esta certo:

public static void main(String[] args){

        EntityManager em = JPAUtil.getEntityManager();
        em.getTransaction().begin();

        String jpql = "select extract(day from current_date),extract(month from current_date) from Aniversariante a";
        Query query = em.createQuery(jpql);

        List<Aniversariante> aniversariantes = query.getResultList();

        for (Aniversariante niver : aniversariantes) {

                System.out.println(niver.getId());

        }

        em.getTransaction().commit();
        em.close();
    }

Saí o seguinte resultado:

Hibernate: 
    select
        extract(day 
    from
        current_date) as col_0_0_,
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to br.com.escola.modelo.Aniversariante
        extract(month 
    from
        current_date) as col_1_0_ 
    from
        aniversariante aniversari0_
    at br.com.escola.email.teste.main(teste.java:31)
C:\Users\feilpe\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 4 segundos)

Como eu faria esse comando de forma certa no JPQL?

2 respostas

tentei de varias formas mas não consegui ainda!

solução!

Boa tarde, Eu consegui!!

public static void main(String[] args){

        EntityManager em = JPAUtil.getEntityManager();
        em.getTransaction().begin();

        String jpql = "select mov from Automovel mov where day(data)=day(current_date()) and month(data)=month(current_date())";
        Query query = em.createQuery(jpql);

        List<Automovel> automoveis = query.getResultList();

        for (Automovel automovel : automoveis) {

                System.out.println(automovel.getData());

        }

        em.getTransaction().commit();
        em.close();
    }