2017-05-09 3 views
1

Je collectionne des ensembles de données par jour comme celui-ci:JPA - seul objet de sélection pour premier jour du mois

date  value 
01.01.2017 5 
02.01.2017 6 
03.01.2017 10 
. 
. 
. 
01.02.2017 30 
02.02.2017 33 
. 
. 
. 
01.03.2017 50 

donc une entrée par jour. Ensuite, je l'utilise pour dessiner un tableau. Maintenant, si les données arrivent à beaucoup, je veux dessiner un graphique mensuel à la place et donc seulement sélectionner le premier objet pour le mois. Par exemple. le résultat devrait être:

date  value 
01.01.2017 5 
01.02.2017 30 
01.03.2017 50 

Existe-t-il un moyen d'obtenir ce résultat avec JPQL? Le résultat devrait contenir des objets d'entité.

Répondre

2

En supposant (grande hypothèse peut-être ?, mais vous devez faire de la question plus claire pour obtenir des réponses précises) vous avez une entité comme celui-ci

@Entity 
public class Dataset 
{ 
    @Id 
    long id; 

    Date date; 

    long value; 
} 

Ensuite, vous pouvez exécuter JPQL tels que

Query q = em.createQuery("SELECT d FROM Dataset d WHERE DAY(d.date) == 1"); 

Alors que DAY n'est pas standard JPQL (encore) il est pris en charge par la majorité des fournisseurs JPA là-bas.

+0

Oui, l'hypothèse est correcte. Merci cela ressemble à une solution viable. Je vais essayer ça! – jan

+0

Cela a fonctionné pour moi, merci! – Ernest