Essa anotação deve ser especificada para campos persistentes ou propriedades do tipo java.util.Datee java.util.Calendar. Ele só pode ser especificado para campos ou propriedades desses tipos.
A Temporalanotação pode ser usada em conjunto com a Basicanotação, a Idanotação ou a ElementCollectionanotação (quando o valor da coleção de elementos é de um tipo temporal.
Em APIs Java simples, a precisão temporal do tempo não é definida. Ao lidar com dados temporais, você pode desejar descrever a precisão esperada no banco de dados. Os dados temporais podem ter precisão de DATA, HORA ou TIMESTAMP (ou seja, a data real, apenas a hora ou ambos). Use a @Temporalanotação para fazer o ajuste fino.
Os dados temporais são os dados relacionados ao tempo. Por exemplo, em um sistema de gerenciamento de conteúdo, a data de criação e a data da última atualização de um artigo são dados temporais. Em alguns casos, os dados temporais precisam de precisão e você deseja armazenar data / hora precisa ou ambos ( TIMESTAMP) na tabela do banco de dados.
A precisão temporal não é especificada nas principais APIs Java. @Temporalé uma JPAanotação que se converte entre timestamp e java.util.Date. Ele também se converte time-stampem tempo. Por exemplo, no snippet abaixo, @Temporal(TemporalType.DATE) descarta o valor da hora e apenas preserva a data .
@Temporal(TemporalType.DATE)
private java.util.Date creationDate;
De acordo com os javadocs,
Anotação para declarar um {@code TemporalType} apropriado nos parâmetros do método de consulta. Observe que esta anotação só pode ser usada em parâmetros do tipo {@link Date} com padrãoTemporalType.DATE
[Informações acima coletadas de várias fontes]