如何将joda时间与JPA(eclipselink)一起使用?

2022-09-03 18:28:05

我试图在我的课堂上使用。在字段上方添加,我收到错误,指出“Temporal类型的持久字段或属性必须是java.util.Date,java.util.Calendar或java.util.GregorianCalendar”。我可以来回介绍转换;使用 setter 和 getters,如下所示:DataTimeentity@Temporal(TemporalType.DATE)

@Temporal(TemporalType.DATE)
private Calendar attendanceDate;

public DateTime getAttendanceDate() {
    return new DateTime(this.attendanceDate);
}

public void setAttendanceDate(DateTime attendanceDate) {
    this.attendanceDate = attendanceDate.toCalendar(Locale.getDefault());
}

但我希望为我做这件事。我已经通过Hibernate坚持Joda-time的DateTime。答案建议使用休眠,但我必须使用eclipselink。我可以在实体类中使用 DB 表示形式的对象,但我需要它作为 。有没有类似的东西?或者任何其他建议?感谢您的帮助。eclipselinkDateTimeBLOBDatejodatime-eclipselink


答案 1

基本链接定义了一个EclipseLink转换器,用于从Joda DateTime转换为java.sql.Timestamp或Date。您可以使用它,或者定义自己的转换器并通过@Convert使用它,@Converter EclipseLink中。

对于 DDL 创建,转换器应定义初始化方法,并将映射字段上的类型设置为 java.sql.Timestamp。

请在EclipseLink中记录一个错误(或投票给现有的错误),我们应该支持Joda。


答案 2

我尝试使用joda-time-eclipselink-integration,但不起作用,可能我做错了什么,

所以我做了更多的研究,我发现这个链接 http://jcodehelp.blogspot.com.br/2011/12/persist-joda-datetime-with-eclipselink.html,他们使用@Converter注释来转换Joda日期时间。

我试着为我工作,我希望,也为你工作。


推荐