PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

JPA Criteria API:So rufen Sie das Datum im Format mm/tt/jjjj ab

Criteria API definiert function expression um native SQL-Funktionen im CriteriaBuilder auszuführen Schnittstelle wie folgt:

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

wobei name ist der Name der SQL-Funktion, type ist der erwartete Rückgabetyp und args ist eine variable Liste von Argumenten (falls vorhanden).

Hier ist ein Beispiel für die Verwendung in einer Kriterienabfrage:

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

wo

  • RadExamTimes :eine hypothetische Root-Entität
  • MM/DD/YYYY :ein datenbankspezifisches Format (in diesem Beispiel Postgresql-Datumsformat; für Oracle verwenden Sie das Ora-Format usw.)
  • to_char :Postgresql-Funktion zum Konvertieren des Datumswerts in einen String
  • begin_exam :das zu formatierende Datumsfeld

Der Formatstring kann nicht unverändert übergeben werden, sodass literal() Methode wird verwendet, um es zu umschließen.

Hinweis:Das obige Beispiel wurde auf einer MySQL-Datenbank mit MySQL-Funktion und entsprechendem Datumsformat getestet; aber das Beispiel wurde geändert, um der Postgresql-Syntax zu entsprechen.