我有以下实体:
@Entity
@Table(name = "my_entity")
public class MyEntity {
@Column(columnDefinition = "VARCHAR(2000)")
private String myField;
public String getMyField() {
return myField;
}
public void setMyField(String myField) {
this.myField = myField;
}
}
我配置了Hibernate来对我的架构进行验证:
hibernate.hbm2ddl.auto=validate
在我的架构中,我有列" myField"在表格" my_entity" 最大长度 255 CHAR
我希望Hibernate在服务器启动时验证失败 因为实体中定义的字段长度大于 在我的架构中定义。
这是一个错误吗? 有没有办法配置Hibernate来做呢?
答案 0 :(得分:2)
Hibernate文档说:
自动验证或将架构DDL导出到数据库时 SessionFactory已创建
根据您使用休眠的设置,SessionFactory不是
在服务器启动时立即创建。例如。当您使用Configuration().configure().buildSessionFactory();
编辑:看起来有点像Hibernate错误,因为org.hibernate.mapping.Table.validateColumns只会检查列类型。