【发布时间】:2018-11-29 10:52:53
【问题描述】:
我有以下表结构,其中一些列是时间戳:
CREATE TABLE `product_space` (
`ps_date_created` timestamp NULL DEFAULT NULL,
`ps_date_modified` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
//some other fields
)
我还有一个域类,它代表表中的一行,并将所有这些日期字段包括为ZonedDateTime:
@Data
@Builder
public class ProductSpace {
@Column(name = CREATED_AT)
private ZonedDateTime createdAt;
@Column(name = UPDATED_AT)
private ZonedDateTime updatedAt;
@Column(name = PS_DATE_CREATED)
private ZonedDateTime psDateCreated;
@Column(name = PS_DATE_MODIFIED)
private ZonedDateTime psDateModified;
//some other fields
}
然后我尝试运行以下查询:
Optional.ofNullable(
DSL.using(configuration)
.selectFrom(PRODUCT_SPACE_TABLE_NAME)
.where(field(GTIN, Long.class).eq(gtin))
.fetchAny())
.map(x -> x.into(ProductSpace.class));
这会产生异常:
org.jooq.exception.DataTypeException: Cannot convert from 1 (class org.jooq.types.ULong) to class java.time.ZonedDateTime
我需要保持域原样并且不更改字段类型,因此需要保持 ZonedDateTime。但是,不知道如何解决此问题。
非常感谢您对此提供任何帮助。
【问题讨论】:
-
使用的是哪个版本?
-
@JacekCz 3.10.4
-
什么 JPA 提供者和什么版本?