gpt4 book ai didi

java - 注释尺寸小于数据库中的实际尺寸

转载 作者:行者123 更新时间:2023-11-30 01:43:16 25 4
gpt4 key购买 nike

我很好奇定义实体列大小小于数据库中的含义是什么。这有什么危险吗?没有自动生成方案。我正在使用 javax.validation.constraints.Size。

最佳答案

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

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

现在,如果我们谈论注释Column长度,它描述的是数据库的物理属性。此定义不用于强制验证,而是用于根据您的实体生成数据库架构。

您可以在下面的 Baeldung bean article 中找到有关 Bean 验证的更多详细信息。 .

此外,它还有一篇很好的文章介绍 @Size/@Length/@Column(length=...) 之间的区别

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

最后,如果不进行验证,显然不会引发错误。

关于java - 注释尺寸小于数据库中的实际尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59191005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com