2016-01-22 66 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  |