注释大小小于数据库中的实际大小
Annotations size smallest than real size in database
我很好奇在数据库中定义小于 tha 的实体列大小意味着什么。这样做有什么危险吗?没有自动生成方案。我正在使用 javax.validation.constraints.Size.
这意味着验证框架将检查数据是否符合给定的大小。现在假设您直接在数据库中插入了大于大小值的数据,那么在验证数据库中的实体时会出错,因为它对于您的实体字段来说太大了。请注意,我在这里指的是 @Length
注释。这个注解是 Hibernate 特有的注解。 @Size
等同于 @Length
,但它不是特定于 Hibernate 的,而是在 JSR 380 specification.
中定义的
在这两种情况下,你都应该小心。为了强制执行约束注释,您依赖于验证实现,例如 Hibernate Validator。因此,您需要注册一个验证器并对您的 bean/entity 执行验证。因此,验证器将 return constraintViolations on your bean/entity,你可以处理或忽略。
现在,如果我们谈论注释 Column
的 长度 ,它是在描述数据库的物理属性。此定义不用于强制验证,而是用于根据您的实体生成数据库架构。
您可以在以下 Baeldung bean article.
中找到有关 bean 验证的更多详细信息
此外,它也有一篇关于@Size/@Length/@Column(length=...)
的区别的好文章
在所有情况下,都不要那样做...您实际上是在定义应用程序中不统一的约束。验证框架用于在您的 bean 上强制执行某些属性。如果现在您的实体和数据库列之间有不同的属性,您将添加不一致。
最后,如果不做验证,显然不会报错。
我很好奇在数据库中定义小于 tha 的实体列大小意味着什么。这样做有什么危险吗?没有自动生成方案。我正在使用 javax.validation.constraints.Size.
这意味着验证框架将检查数据是否符合给定的大小。现在假设您直接在数据库中插入了大于大小值的数据,那么在验证数据库中的实体时会出错,因为它对于您的实体字段来说太大了。请注意,我在这里指的是 @Length
注释。这个注解是 Hibernate 特有的注解。 @Size
等同于 @Length
,但它不是特定于 Hibernate 的,而是在 JSR 380 specification.
在这两种情况下,你都应该小心。为了强制执行约束注释,您依赖于验证实现,例如 Hibernate Validator。因此,您需要注册一个验证器并对您的 bean/entity 执行验证。因此,验证器将 return constraintViolations on your bean/entity,你可以处理或忽略。
现在,如果我们谈论注释 Column
的 长度 ,它是在描述数据库的物理属性。此定义不用于强制验证,而是用于根据您的实体生成数据库架构。
您可以在以下 Baeldung bean article.
中找到有关 bean 验证的更多详细信息此外,它也有一篇关于@Size/@Length/@Column(length=...)
的区别的好文章在所有情况下,都不要那样做...您实际上是在定义应用程序中不统一的约束。验证框架用于在您的 bean 上强制执行某些属性。如果现在您的实体和数据库列之间有不同的属性,您将添加不一致。
最后,如果不做验证,显然不会报错。