首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不支持的MySQL语法播放框架演进

使用不支持的MySQL语法播放框架演进
EN

Stack Overflow用户
提问于 2016-03-01 13:46:04
回答 1查看 447关注 0票数 1

我使用Play Framework2.4启动了一个项目,其中包括Ebean,并使用了MySql Server5.5。

正如Play docs描述的那样,可以从对象生成数据库,并且它正在按预期工作。但是当我试图插入时间戳时,我遇到了一个问题,因为Play使用的是服务器不支持的新的mysql语法。

这是我的模型:

代码语言:javascript
复制
@ManyToOne
@Column(name = "user_send_id")
private User userSendReq;

@ManyToOne
@Column(name = "user_request_id")
private User userGetReq;

@CreatedTimestamp
@Column(name = "date_request")
private Timestamp whenRequest;

@UpdatedTimestamp
@Column(name = "date_friends")
private Timestamp whenFriends;

private boolean request;

这是MySQL代码播放为我生成的:

代码语言:javascript
复制
create table friends (
user_send_req_id          bigint,
user_get_req_id           bigint,
request                   tinyint(1) default 0,
date_request              datetime(6) not null,
date_friends              datetime(6) not null)
;

当我试图将进化应用于服务器时,我得到了以下错误:

错误代码: 1064。您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第5行使用接近“(6) not null,date_friends datetime(6) null)”的正确语法。

是否有一种方法可以告诉Play只使用datetime()而不是用datetime(6)生成SQL进化论文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 17:00:23

这与Ebean比Play更相关,因为play使用Ebean生成DDL。要解决这个问题,可以在映射模型时显式地设置SQL类型。只需将columnDefinition参数用于@Column注释:

代码语言:javascript
复制
@CreatedTimestamp
@Column(name = "date_request", columnDefinition = "datetime")
private Timestamp whenRequest;

@UpdatedTimestamp
@Column(name = "date_friends", columnDefinition = "datetime")
private Timestamp whenFriends;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35724607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档