gpt4 book ai didi

Hibernate 在使用 "default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP"时创建没有名称的列

转载 作者:行者123 更新时间:2023-12-03 22:22:23 25 4
gpt4 key购买 nike

我得到了以下实体:

@Entity
public class Person {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(columnDefinition="int(11)",nullable=false)
private int id;

@Column(columnDefinition="varchar(255)",nullable=false)
private String name;

@Column(columnDefinition="varchar(255)",nullable=false)
private String vorname;

@Column(columnDefinition="varchar(255)",nullable=false)
private String password;

@Column(columnDefinition="varchar(100)",nullable=false)
private String user;

@Column(columnDefinition="varchar(20)",nullable=false)
private String klasse;

@Temporal(TemporalType.TIMESTAMP)
@Column(name="timestamp",nullable = false,columnDefinition="default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP")
private Date timestamp = new Date();


public Person(){

}
@PreUpdate
public void updatePerson(){
this.timestamp = new Date();
}


...getters
...setters

}

在调用 hibenate 时,当 hibernate 想要创建表时出现错误。似乎发生了错误,因为列时间戳没有名称:

错误:HHH000389:不成功:创建表 Person (id int(11) not null auto_increment,klasse varchar(20) not null,name varchar(255) not null,password varchar(255) not null,时间戳默认 CURRENT_TIMESTAMP on更新 CURRENT_TIMESTAMP 不为空,用户 varchar(100) 不为空,vorname varchar(255) 不为空,主键 (id)) type=MyISAM

有人知道hibernate为什么会这样吗?

最佳答案

这不是没有名称的列,而是没有类型的列。

Hibernate 期望 columnDefinition 也包含列类型:

@Temporal(TemporalType.TIMESTAMP)
@Column(name="timestamp", nullable = false,
columnDefinition="TIMESTAMP default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP")
private Date timestamp = new Date();

关于Hibernate 在使用 "default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP"时创建没有名称的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13679294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com