PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

API JPA Criteria :comment récupérer la date au format mm/jj/aaaa

L'API des critères définit l'function expression pour exécuter des fonctions SQL natives dans le CriteriaBuilder l'interface comme suit :

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

name est le nom de la fonction SQL, type est le type de retour attendu et args est une liste variable d'arguments (le cas échéant).

Voici un exemple d'utilisation dans une requête Critères :

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();

  • RadExamTimes  :une entité racine hypothétique
  • MM/DD/YYYY  :un format spécifique à la base de données (dans cet exemple, le format de date Postgresql ; pour Oracle, utilisez le format Ora, etc.)
  • to_char  :Fonction Postgresql pour convertir la valeur de la date en chaîne
  • begin_exam :le champ date à formater

La chaîne de format ne peut pas être transmise telle quelle afin que le literal() méthode est utilisée pour l'envelopper.

Remarque :L'exemple ci-dessus est testé sur la base de données MySQL avec la fonction MySQL et le format de date correspondant ; mais l'exemple a changé pour correspondre à la syntaxe Postgresql.