gpt4 book ai didi

java - 服务器启动时的 hibernate 验证不检查列长度

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

我有以下实体:

@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

在我的架构中,我在表“my_entity”下有列“myField”最大长度为255 CHAR

我希望 Hibernate 在服务器启动时验证失败因为实体中定义的字段长度大于在我的架构中定义。

这是一个错误吗?有没有办法配置 Hibernate 来做到这一点?

最佳答案

Hibernate 文档说:

Automatically validates or exports schema DDL to the database when the SessionFactory is created

根据您使用 hibernate 的设置,SessionFactory 不是必须在服务器启动时立即创建。例如。当您使用 Configuration().configure().buildSessionFactory(); 创建“自己的”SessionFactory 时;

编辑:看起来有点像是自 org.hibernate.mapping.Table.validateColumns 以来的 Hibernate bug仅检查列类型。

关于java - 服务器启动时的 hibernate 验证不检查列长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30863012/

25 4 0
文章推荐: c++ - 为什么将套接字绑定(bind)到接口(interface)失败?
文章推荐: java - 出现 ' JSON EXCEPTION: no value for ' 错误?
文章推荐: java - 玩 Java Akka - Await.result 期待可等待对象但不接受 Future