JPA 1.0 是否支持 GregorianCalendar
的映射?我没有在 JPA 1.0 的映射文件规范中找到任何关于 GregorianCalendar
的内容。 JPA 2.0 怎么样?
最佳答案
JPA 确实支持 java.util.Calendar 及其子类。唯一需要注意的是,您必须使用 @Temporal 注释来指示该字段在数据库中的存储方式。规范的两个版本都有此要求,这是 JPA 2.0 规范的部分:
11.1.47 时间注释
必须为类型的持久字段或属性指定 Temporal 注解 java.util.Date 和 java.util.Calendar。它只能指定用于字段或属性 这些类型。
Temporal 注释可以与 Basic 注释、Id 注释或 ElementCollection[111] 注释结合使用(当元素集合值属于此类时间类型时)。
TemporalType 枚举定义了这些时间类型的映射。
public enum TemporalType {
DATE, //java.sql.Date
TIME, //java.sql.Time
TIMESTAMP //java.sql.Timestamp
}
否则您不需要做任何特别的事情。您的实体可能看起来像这样:
@Entity
public class Person {
// . . .
@Temporal(TemporalType.TIMESTAMP)
private GregorianCalendar lastUpdated;
// . . .
}
关于java - JPA 和公历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283871/