在mysql服务器播放框架中存储日期时间



我有一个连接到mysql服务器的Play应用程序,在模型中,我有一些属性希望保存为DateTimes,但使用java.sql.Timestamp会在我的进化中产生用于创建表的属性

 create table delivery (
  id                        bigint auto_increment not null,
  deleted                   tinyint(1) default 0,
  description               varchar(500),
  notes                     varchar(1000),
  account_id                bigint,
  customer_id               bigint,
  sender_id                 bigint,
  recipient_id              bigint,
  delivery_status_id        bigint,
  delivery_type_id          bigint,
  package_type_id           bigint,
  item_type_id              bigint,
  call_date                 datetime(6),
  pickup_date               datetime(6),
  delivery_date             datetime(6),
  no_of_pieces              integer,
  cust_type                 integer,
  payment_type              integer,
  way_bill                  integer,
  created_time              date,
  modified_time             date,
  createdby_id              bigint,
  modifiedby_id             bigint,
  constraint pk_delivery primary key (id))

这反过来又导致mysql错误:

我们得到了以下错误:您的SQL语法中有一个错误;查看与MySQL服务器版本对应的手册在near'(6(、modified_time-datetime(6(和createdby_id附近使用正确的语法bigint,mo'在第21行[错误:1064,SQLSTATE:42000],尝试运行此SQL脚本:

我了解到是大小参数(6(导致了这个问题,并能够通过使用java.sql.Date来避免它(因为它在进化中不会产生(。其他人有没有经历过这种情况,并知道在这种情况下存储DateTime的方法?

我能够通过使用@Column注释来定义sql中的类型来解决这个问题。

    @Column(columnDefinition = "datetime")
    public Timestamp createdAt;

我的答案可能有点晚,但您可以尝试使用以下注释:@CreatedTimestamp或@UpdatedTimestam。我已经用Play测试过了!框架2.3.x.

@Column(name = "created")
@CreatedTimestamp
protected Date created;
@Column(name = "updated")
@UpdatedTimestamp
protected Date updated;

相关内容

  • 没有找到相关文章

最新更新