EclipseLink DDL 使用小数秒创建 MySql DATETIME
EclipseLink DDL creating MySql DATETIME with fractional seconds
我在我的项目中使用 EclipseLink 2.6.0
和 MySQL 5.6.19
。
因为 mysql 5.6.4
支持字段类型 DATETIME(6)
,它允许在其值中存储精度为毫秒的日期。另外 EclipseLink 2.6.0
说它支持这个功能。
我正在从我的实体创建一个数据库。而且我无法强迫它创建一个合适的领域。在日志中,在创建数据库的过程中,我经常看到:
CREATE TABLE MY_TABLE (..., DATE_FIELD DATETIME ...)
显然,我想要的是:
CREATE TABLE MY_TABLE (..., DATE_FIELD DATETIME(6), ...)
我尝试同时使用简单版本和注释版本:
private java.util.Date date1;
@Temporal(value = TemporalType.TIMESTAMP)
private java.util.Date date2;
但结果总是一样的。那么 Eclipselink 如何支持这个呢?如何确定合适的字段类型?
感谢 specializt 的提示,简单的解决方案:
@Column(length=6)
private Date myTime;
也适用于 YodaTime 转换器 (description)
@Column(length=6)
@Converter(name = "dateTimeConverter", converterClass = pl.ds.eemediation.storage.entities.converters.JodaDateTimeConverter.class)
@Convert("dateTimeConverter")
private DateTime date;
我在我的项目中使用 EclipseLink 2.6.0
和 MySQL 5.6.19
。
因为 mysql 5.6.4
支持字段类型 DATETIME(6)
,它允许在其值中存储精度为毫秒的日期。另外 EclipseLink 2.6.0
说它支持这个功能。
我正在从我的实体创建一个数据库。而且我无法强迫它创建一个合适的领域。在日志中,在创建数据库的过程中,我经常看到:
CREATE TABLE MY_TABLE (..., DATE_FIELD DATETIME ...)
显然,我想要的是:
CREATE TABLE MY_TABLE (..., DATE_FIELD DATETIME(6), ...)
我尝试同时使用简单版本和注释版本:
private java.util.Date date1;
@Temporal(value = TemporalType.TIMESTAMP)
private java.util.Date date2;
但结果总是一样的。那么 Eclipselink 如何支持这个呢?如何确定合适的字段类型?
感谢 specializt 的提示,简单的解决方案:
@Column(length=6)
private Date myTime;
也适用于 YodaTime 转换器 (description)
@Column(length=6)
@Converter(name = "dateTimeConverter", converterClass = pl.ds.eemediation.storage.entities.converters.JodaDateTimeConverter.class)
@Convert("dateTimeConverter")
private DateTime date;