【发布时间】:2014-06-21 17:28:22
【问题描述】:
我正在尝试使用带有 Float 数据类型的最大大小验证和 javax 验证。这是示例
@NotNull
@Size(min = 5, max = 10)
public Float getPhone(){
}
但我收到错误消息,我无法对浮点数据类型使用大小验证。有什么想法吗?
【问题讨论】:
标签: java validation hibernate-validator
我正在尝试使用带有 Float 数据类型的最大大小验证和 javax 验证。这是示例
@NotNull
@Size(min = 5, max = 10)
public Float getPhone(){
}
但我收到错误消息,我无法对浮点数据类型使用大小验证。有什么想法吗?
【问题讨论】:
标签: java validation hibernate-validator
@Size 不适用于浮点类型。引用约束的javadocs:
/**
* The annotated element size must be between the specified boundaries (included).
* <p/>
* Supported types are:
* <ul>
* <li>{@code CharSequence} (length of character sequence is evaluated)</li>
* <li>{@code Collection} (collection size is evaluated)</li>
* <li>{@code Map} (map size is evaluated)</li>
* <li>Array (array length is evaluated)</li>
* </ul>
* <p/>
* {@code null} elements are considered valid.
*
*/
所以这个约束实际上是关于字符串或集合的大小。您可以编写自己的浮点验证器并通过 xml 注册 - 请参阅 http://beanvalidation.org/1.1/spec/#xml-mapping-constraintdefinition
但是,我建议不要这样做,因为在您要使用它的上下文中谈论“大小”是没有意义的。
您可以使用@Min 和@Max,但由于舍入问题,并非所有提供程序都支持浮点数据类型。
查看您的示例,您似乎想存储一个电话号码。你为什么会选择一个浮点数作为开始?
【讨论】:
decimal(10,0) 数据类型。现在我从java代码生成了我的bean。 (从数据库动态)。所以它是带十进制的浮点映射(以db为单位)。有什么解决办法吗?