2016-01-22 69 views
2

有一个closed ticket表明Ebean 4.4.1及更高版本支持Java 8的时间类,如OffsetDateTime。但是,我找不到任何显示使用这些类的Ebean文档。EBean(4.5.x)是否支持映射Java 8的时间类型,如OffsetDateTime

对于类如下面所示的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 
} 
+0

- 是的,它是。 –

回答

4

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

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的(可能)完整的表:“是它完全支持使用OffsetDateTime而不是java.sql.Timestamp中的”

| 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  |