我想按时间查找记录。在实体和数据库表中,数据类型为时间戳。我使用MySQL数据库。如何使用JPA条件生成器(不是本机或命名查询)仅获取TimePart而不获取日期,仅获取 Time 。
`@Entity
@Table(name = "appointment_slot")
public class AppointmentSlot extends UpdatableEntity {
@Column(name = "slot_name")
private String slotName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "start_time")
@Temporal(TemporalType.TIMESTAMP)
private Date startTime;
public Date getStartTime() {
return startTime;
}
public Date setStartTime(Date startTime) {
this.startTime = startTime;
`
在repositoryImpl
中` CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder();
CriteriaQuery<AppointmentSlot> criteriaQuery =
criteriaBuilder.createQuery(AppointmentSlot.class);
Root<AppointmentSlot> slotRoot =
criteriaQuery.from(AppointmentSlot.class);
criteriaQuery.where( criteriaBuilder.greaterThanOrEqualTo(slotRoot.
<Date>get("startTime"),
criteriaBuilder.literal(java.sql.Time.valueOf("8:00:00")));
Query<AppointmentSlot> query=getSession().createQuery(criteriaQuery);List<AppointmentSlot > slotList= query.getResultList();`