我正在查看this page,以便在我的Hibernate映射中为java.util.Date
列获取DATE
之间的替代类。
我发现没有任何一种非过时类型映射到SQL中的DATE
列。
我想问一下映射到SQL DATE
的Joda类型是什么。
其他信息:我们正在考虑Joda,因为我们遇到麻烦使用java.util.Date
来表示没有时间的日期,因为如果客户端和服务器的时区与日期不匹配可能会提前一天。现在有很多问题/问题。确切地说:如果客户端处于正时区且服务器说UTC或负时区。
答案 0 :(得分:1)
由于我使用EclipseLink进行持久化,我以前从未使用过Joda-Time-Hibernate。
相反,为了映射Joda类型,我总是使用标准JPA @Convert
将它们映射到数据库。
例如,一个简单的直接转换器可能如下所示:
@Converter
public class LocalDateToDateConverter implements AttributeConverter<LocalDate, Date>
{
@Override
public Date convertToDatabaseColumn( LocalDate attribute )
{
return attribute == null ? null : new Date( attribute.toDate().getTime() );
}
@Override
public LocalDate convertToEntityAttribute( Date dbData )
{
return dbData == null ? null : LocalDate.fromDateFields( dbData );
}
}
如果您确实需要该列为DATE
并且没有别的办法,那么您可以尝试一下。