PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

API Criteri JPA:come recuperare la data nel formato mm/gg/aaaa

Criteria API definisce function expression per eseguire funzioni SQL native nel CriteriaBuilder interfaccia come segue:

<T> Expression<T> function(String name, Class<T> type, Expression<?>... args);

dove name è il nome della funzione SQL, type è il tipo restituito previsto e args è un elenco variabile di argomenti (se presenti).

Ecco un esempio di come utilizzarlo in una query Criteri:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(String.class);
Root<RadExamTimes> root = cq.from(RadExamTimes.class);
cq.select( cb.function("to_char", String.class, root.get("begin_exam"), cb.literal("MM/DD/YYYY")));

TypedQuery<String> query = entityManager.createQuery(cq);
List<String> result = query.getResultList();

dove

  • RadExamTimes :un'ipotetica entità radice
  • MM/DD/YYYY :un formato specifico del database (in questo esempio il formato della data Postgresql; per Oracle usa il formato Ora, ecc.)
  • to_char :funzione Postgresql per convertire il valore della data in stringa
  • begin_exam :il campo della data da formattare

La stringa di formato non può essere passata così com'è in modo che literal() viene utilizzato per avvolgerlo.

Nota:l'esempio sopra è testato su database MySQL con funzione MySQL e formato data corrispondente; ma l'esempio è cambiato per corrispondere alla sintassi di Postgresql.