2016-08-18 48 views
1

我们有一个案例,我们只需要一天和一个月,因此将使用java.time.MonthDayJavadocs)来表示该信息。从java.time.MonthDay到java.sql的映射*

我们知道我们可以创建我们自己的JPA对象来实现持久性,或者只是使用java.sql.Date对象,但通常需要一个不需要的年份信息。 另一种方法是调用方法.atYear(int)Javadoc)(虚构的一年),并获得java.time.LocalDateJavadoc),该方法可以很容易地转换为java.sql.Date。但是这很容易在未来出现误解(并且还会坚持一年的信息)。

这种情况有一些“优雅”/假设的解决方案?或者是否有支持Persistence的全新日期和时间API的SQL替代品。

另一种情况是java.time.YearMonthJavadoc)。

感谢您的阅读!

回答

2

由于SQL数据库没有与MonthDay兼容的类型,请使用VARCHAR列,并且只需使用toString()MonthDay.parse()即可。

或者使用自定义DateTimeFormatter,如果您不喜欢--12-03格式。

默认格式将以字符串形式正确排序。

+0

谢谢,我会试一试,并评估此解决方案是否适合我! – thatsIch

+0

这很好地作为替代,因为在JPQL中,您仍然可以使用比较运算符来导致'String'实现'Comparable' – thatsIch