我正在从事一个Java play项目,并试图为项目用户创建一个时间跟踪器。我有以下追踪时间的课程:
@Entity(name = "trackings")
public class Tracking extends Model {
@EmbeddedId
public TrackingPK id;
@ManyToOne
@MapsId("user")
@JoinColumn(name="user", referencedColumnName="id")
public User user;
@ManyToOne
@MapsId("project")
@JoinColumn(name="project", referencedColumnName="id")
public Project project;
@Required
@Enumerated(EnumType.STRING)
public ETrackingDuration duration;
@Embeddable
public class TrackingPK implements Serializable {
@ManyToOne
@JoinColumn(name = "user_id", referencedColumnName = "id", insertable = false, updatable = false)
private User user;
@ManyToOne
@JoinColumn(name = "project_id", referencedColumnName = "id", insertable = false, updatable = false)
private Project project;
@Column(name="date", columnDefinition="DATE NOT NULL")
@Temporal(TemporalType.DATE)
private Date date;
}
}
不幸的是,JPA一直把日期定为
auto_increment
我不知道为什么。
以下是我的日志:
09:14:16,939 ERROR ~ HHH000388: Unsuccessful: create table trackings (date datetime not null auto_increment, project_id bigint not null, user_id bigint not null, id bigint not null, duration varchar(255), primary key (date, project_id, user_id, id)) ENGINE=InnoDB DEFAULT CHARSET=utf8
09:14:16,939 ERROR ~ Incorrect column specifier for column 'date'
09:14:16,941 ERROR ~ HHH000388: Unsuccessful: alter table trackings add index FK_fjady3y2u9ej76atpce4djsu5 (project_id), add constraint FK_fjady3y2u9ej76atpce4djsu5 foreign key (project_id) references projects (id)
09:14:16,941 ERROR ~ Table 'trackings' doesn't exist
09:14:16,944 ERROR ~ HHH000388: Unsuccessful: alter table trackings add index FK_rdi49oyr8mro9t6vjj5towo0b (user_id), add constraint FK_rdi49oyr8mro9t6vjj5towo0b foreign key (user_id) references users (id)
外键正确,但不正确
date
。。。