如何在JPA / Hibernate条件的“时间戳”列中按时间查找记录?

时间:2018-09-29 04:44:10

标签: java hibernate spring-mvc jpa hibernate-criteria

我想按时间查找记录。在实体和数据库表中,数据类型为时间戳。我使用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();`

0 个答案:

没有答案