2017-08-07 2 views
0

J'ai un critère JPA qui sélectionne la date maximale d'une table et je veux sélectionner le jour suivant, par exemple. si le résultat de la requête est 1/20/17 Je veux que le résultat soit 1/21/17Critères JPA ajouter un jour à la date sélectionnée

Voici mon code:

CriteriaQuery<Date> maxDateCriteriaQuery = criteriaBuilder.createQuery(Date.class); 
    Root<DatesClass> datesClassRoot = maxDateCriteriaQuery.from(DatesClass.class); 
    maxDateCriteriaQuery.select(criteriaBuilder.greatest(datesClassRoot)); 
    TypedQuery<Date> maxDateTypedQuery = entityManager.createQuery(amortizationsQuery); 
    Date maxDate = maxDateTypedQuery.getSingleResult(); 

Je souhaite modifier les critères pour renvoyer la date max + 1

Dans oracle je vais fais-le:

SELECT MAX(MY_DATE) + 1 FROM DATES_TABLE; 

J'apprécie toute aide!

Répondre

1

Je suppose que vous voulez conserver l'objet Date d'origine dans la base de données?

Que je voudrais ajouter 1 jour à jour vous de votre DB récupéré:

Calendar c = Calendar.getInstance(); 
c.setTime(maxDate); 
c.add(Calendar.DATE, 1); 
Date newMaxDate = c.getTime(); 
+0

Merci @MathiasGhys mais je préfère le faire dans le cadre des critères JPA parce que mes critères originaux retourner une liste de dates par exemple pour chaque personne sa date max ... –