jOOQ是否支持JSR310与PostgreSQL结合使用?特别是,我试图使用以下类:
java.time.Instantjava.time.LocalDatejava.time.LocalTimejava.time.LocalDateTime我存储在以下数据类型中(根据http://www.postgresql.org/docs/9.1/static/datatype-datetime.html):
java.time.Instant: timestamp with timezonejava.time.LocalDate: datejava.time.LocalTime: time without timezonejava.time.LocalDateTime: timestamp without timezone这些数据类型是否正确?
是否jOOQ支持转换之间java.sql.Timestamp,java.sql.Date以及java.sql.Time和四大类以上(双向)?
我试过写一个Converter<java.sql.Date, java.time.LocalDate>但我不能让它与所有时区设置一起工作.
想法:
LocalDate,例如2014年8月20日,并将其保存到数据库,则无论客户端时区是什么,它都应该在数据库中显示为2014年8月20日.我的测试:
@Test public void dateConverter() {
for (int offset = -12; offset <= 12; offset++) {
TimeZone localTz = TimeZone.getTimeZone(ZoneOffset.ofHours(offset));
TimeZone.setDefault(localTz);
LocalDate ld = LocalDate.now();
sql.insertInto(DATE_TEST).set(new DateTestRecord(ld)).execute();
LocalDate savedLd = sql.selectFrom(DATE_TEST).fetchOne(DATE_TEST.DATE_);
assertEquals(savedLd, ld, "offset=" + offset);
sql.delete(DATE_TEST).execute();
}
}
Run Code Online (Sandbox Code Playgroud)
我的转换器:
public class DateConverter implements Converter<Date, LocalDate>{
@Override public LocalDate from(Date date) { return date.toLocalDate(); }
@Override public Date to(LocalDate ld) { return Date.valueOf(ld); }
@Override public Class<Date> fromType() { return Date.class; …Run Code Online (Sandbox Code Playgroud)