Java 注释大小小于数据库中的实际大小

Java 注释大小小于数据库中的实际大小,java,sql,hibernate,persistence,Java,Sql,Hibernate,Persistence,我很好奇,在数据库中定义实体列大小比定义实体列小意味着什么。那有什么危险吗?没有自动生成方案。我使用javax.validation.constraints.Size.这意味着验证框架将检查数据是否符合给定的大小。现在假设您直接在数据库中插入了大于大小值的数据,那么在验证数据库中的实体时会出现错误,因为它对于实体字段来说太大了。请注意,我在这里指的是@Length注释。此注释是特定于Hibernate的注释@Size相当于@Length,但它不是特定于Hibernate的,而是在中定义的 在这两

我很好奇,在数据库中定义实体列大小比定义实体列小意味着什么。那有什么危险吗?没有自动生成方案。我使用javax.validation.constraints.Size.

这意味着验证框架将检查数据是否符合给定的大小。现在假设您直接在数据库中插入了大于大小值的数据,那么在验证数据库中的实体时会出现错误,因为它对于实体字段来说太大了。请注意,我在这里指的是
@Length
注释。此注释是特定于Hibernate的注释
@Size
相当于
@Length
,但它不是特定于Hibernate的,而是在中定义的

在这两种情况下,你都应该小心。为了强制约束注释,您依赖于验证实现,例如。因此,您需要注册一个验证器,并对bean/实体执行验证。结果,验证器将返回bean/实体上的constraintViolations,您可以处理或忽略它

现在,若我们谈论的是注释
列的长度,那个么它描述的是数据库的物理属性。此定义不用于强制验证,而是用于基于实体生成数据库架构

您可以在下面的Baeldung中找到关于bean验证的更多细节

此外,它也有一个很好的文章之间的区别

在所有情况下,不要这样做。。。您实际上是在定义应用程序中不统一的约束。验证框架用于对bean强制执行某些属性。如果现在实体和数据库列之间有不同的属性,则会添加不一致性


最后,如果没有进行验证,显然不会出现错误。

您为什么要这样做?!?代码中的约束应始终与数据库中的实际约束相匹配。请提供带有注释的行。我只能向您展示注释的示例。希望这会有帮助@大小(max=10)@Column(name=“test”)私有字符串测试;我根据您提供的其他信息修改了我的答案