我正在学习spring ...,我构建了一个简单的应用程序。 我有一个问题,因为休眠不希望生成模型之一。 我不知道怎么了
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name="access_card")
public class AccessCard implements Serializable{
private static final long serialVersionUID = -4015209774835055079L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private Long id;
@Column(name="key")
private String key;
@Column(name="enabled")
private Boolean enabled;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
@JsonIgnore
private User user;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
其他类的编写方式相似,一切正常。 错误:
org.hibernate.tool.schema.spi.CommandAcceptanceException:错误 执行DDL“创建表access_card(id bigint不为null,已启用 位,键varchar(255),user_id bigint不为null,主键(id)) 通过JDBC语句创建engine = MyISAM
和属性
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
答案 0 :(得分:0)
按照您的评论,问题在这里指出
key varchar(255)
表名是保留关键字。
请参见https://hibernate.atlassian.net/browse/HHH-4453
如果仍然需要,解决方案是https://vladmihalcea.com/escape-sql-reserved-keywords-jpa-hibernate/