PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

API de critérios JPA:como recuperar data no formato mm/dd/aaaa


A API de critérios define a function expression para executar funções SQL nativas no CriteriaBuilder interface da seguinte forma:
Função
<T> Expression<T> function(String name, Class<T> type, Expression<?>... args);

onde name é o nome da função SQL, type é o tipo de retorno esperado e args é uma lista variável de argumentos (se houver).

Aqui está um exemplo de como usá-lo em uma consulta de critérios:
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();

Onde
  • RadExamTimes :uma entidade raiz hipotética
  • MM/DD/YYYY :um formato específico do banco de dados (neste exemplo, formato de data Postgresql; para Oracle, use o formato Ora, etc)
  • to_char :Função Postgresql para converter valor de data em string
  • begin_exam :o campo de data a ser formatado

A string de formato não pode ser passada como está para que o literal() é usado para envolvê-lo.

Nota:O exemplo acima é testado em banco de dados MySQL com função MySQL e formato de data correspondente; mas o exemplo mudou para corresponder à sintaxe do Postgresql.