EBean(4.5.x)是否支持OffsetDateTime等映射Java8的时间类型

Does EBean (4.5.x) support mapping Java 8's time types such as OffsetDateTime

有一个 closed ticket 暗示 Ebean 4.4.1 及以上版本支持 Java 8 的时间 classes,例如 OffsetDateTime。但是,我找不到任何显示使用这些 classes.

的 Ebean 文档

对于 class 如下所示 AppUser,是否完全支持使用 OffsetDateTime 而不是 java.sql.Timestamp

@Entity
public class AppUser extends Model {

    @Id
    private Long id;
    private String username;
    private OffsetDateTime lastSeen;

    // Constructor, getters and setters
}

这些新类型没有文档,但代码非常简单明了:

https://github.com/ebean-orm/avaje-ebeanorm/blob/master/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeOffsetDateTime.java

如您在代码中所见,OffsetDateTime 映射到 java.sql.Timestamp。这是 Ebean 如何将 java.time 类型映射到 java.sql.Types 的(可能)完整 table:

| Java 8 java.time.*               | java.sql.Types |
|:---------------------------------|:---------------|
| DayOfWeek                        | INTEGER        |
| Duration                         | BIGINT         |
| Duration (with nanos precision)  | DECIMAL        |
| Instant                          | TIMESTAMP      |
| LocalDate                        | DATE           |
| LocalDateTime                    | TIMESTAMP      |
| LocalTime                        | TIME           |
| LocalTime (with nanos precision) | BIGINT         |
| Month                            | INTEGER        |
| MonthDay                         | DATE           |
| OffsetDateTime                   | TIMESTAMP      |
| OffsetTime                       | VARCHAR        |
| Year                             | INTEGER        |
| YearMonth                        | DATE           |
| ZoneId                           | VARCHAR        |
| ZoneOffset                       | VARCHAR        |
| ZonedDateTime                    | TIMESTAMP      |