代码之家  ›  专栏  ›  技术社区  ›  dhyanandra singh

使用hibernate只在数据库中保存时间

  •  1
  • dhyanandra singh  · 技术社区  · 8 年前

    我使用Hibernate,只想在数据库中保存时间,所以我将字段声明为Date,并用时态类型time对其进行注释,但它在格式方面给我带来了错误。

    模型

    @Entity
    @Table(name = "working_policy")
    public class OrganizationWorkingPolicy {
    
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name= "policy_id")
        private long policyId;
    
        @NotEmpty
        @NotNull
        @Column(name= "day")
        private String day;
    
        @DateTimeFormat(pattern="hh:mm:ss" )
        @Temporal(TemporalType.TIME)
        @Column(name = "start_time")
        private Date startTime;
    
        @DateTimeFormat(pattern="HH:mm:ss" )
        @Temporal(TemporalType.TIME)
        @Column(name = "end_time")
        private Date endTime;
    
        // getter and setters
    }
    

    错误

    Servlet.service() for servlet [dispatcher] in context with path [/AppointmentSchedular] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Can not construct instance of java.util.Date from String value '12:20:00': not a valid representation (error: Failed to parse Date value '12:20:00': Can not parse date "12:20:00": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
     at [Source: N/A; line: -1, column: -1] (through reference chain: com.appoitment.schedular.model.OrganizationWorkingPolicy["startTime"])] with root cause
    com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not construct instance of java.util.Date from String value '12:20:00': not a valid representation (error: Failed to parse Date value '12:20:00': Can not parse date "12:20:00": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
     at [Source: N/A; line: -1, column: -1] (through reference chain: com.appoitment.schedular.model.OrganizationWorkingPolicy["startTime"])
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Vy Do    8 年前

    尝试使用 java.sql.Time; 而不是 import java.util.Date; 在Hibernate实体类中,它应该可以工作。