This annotation must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar.
So when the field variable is a java.util.Date or java.util.Calendar, it MUST be annotated by @Temporal.
There are 3 values for @Temporal
- TemporalType.DATE
- TemporalType.TIME
- TemporalType.TIMESTAMP
Here is a demo to show the usage of there 3 values. The Entity 'MyEntity' has a field called 'lastUpdateTime' which is a defined as a java.util.Date variable. let's update it in java like this:
import java.util.Date;
//...
// MyEntity is the JPA entity, em is EntityManager context
MyEntity e = em.find(MyEntity.class, 1L); //get the row with id=1
e.setLastUpdateTime(new Date());
TemporalType.DATE
If the column annotated with @Temporal(TemporalType.DATE) like this:
@Temporal(TemporalType.DATE)
@Column(name="LAST_UPDATE_TIME")
private Date lastUpdateTime;
The record in database after update will look like:
TemporalType.TIME
If the column annotatedwith @Temporal(TemporalType.TIME) like this:
@Temporal(TemporalType.TIME)
@Column(name="LAST_UPDATE_TIME")
private Date lastUpdateTime;
The record in database after update will look like:
TemporalType.TIMESTAMP
If the column annotated with @Temporal(TemporalType.TIMESTAMP) like this:
@Temporal(TemporalType.TIMESTAMP)
@Column(name="LAST_UPDATE_TIME")
private Date lastUpdateTime;
awesome
ReplyDelete