如何使用休眠注释将日期字符串转换为 yyyyMM 格式的日期

How Can I convert Date String as format yyyy-MM to Date with hibernate annoation

当我尝试在属性顶部使用 @DateTimeFormat(patter="yyyy-MM") 时,

ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Bad format for DATE '2015-05'

我该怎么做才能解决这个问题?

在我测试时,格式舔 "yyyy-MMM"、"yyyy-MM-dd" 一切正常。 @DateTimeFormat 不支持 "yyyy-MM" 格式。然后,为了四处走动,我需要 getter 和 setter

中的 attributeConverter 或 wave magic

也许你可以使用更合适的 Java 类型, 喜欢 org.joda.time.YearMonth (Joda Time 2.0) or java.time.YearMonth (Java 8)。 例如,YearMonth.now() 给出“2015-09”。

那么您需要一个从 String 到 YearMonth 的转换器。

借助 Hibernate,您可以在您的实体上使用 :

@org.hibernate.annotations.Type(type = "MyConverter")
private YearMonth yearMonth;

使用 JPA 2.1 :

@javax.persistence.Convert(converter = MyConverter.class)
private YearMonth yearMonth;