如何使用Redis在Spring启动休息应用程序中从15-25个符号指定'ID'的长度约束?
Private Sub spnButton_SpinDown()
With Me
.txtRowNumber = CLng(.txtRowNumber) + 1
End With
End Sub
Private Sub spnButton_SpinUp()
With Me
If CLng(.txtRowNumber) > 1 Then
.txtRowNumber = CLng(.txtRowNumber) - 1
End If
End With
End Sub
更新
我尝试将Private Sub UserForm_Initialize()
With Me
.txtRowNumber = 2
.spnButton = .txtRowNumber
PopulateForm .txtRowNumber
End With
End Sub
类型更改为@RedisHash("Foo")
public class Foo implements Serializable {
@Id
private Long id;
@Indexed
private Status status;
}
并将id
设置为符号长度限制,但它不起作用(似乎忽略了String
注释) Redis数据库使用范围:
Size
我也试过使用自定义验证器并且使用相同的行为 - 在使用Redis数据库时似乎忽略了它:
Size
验证
@RedisHash("Foo")
public class Foo implements Serializable {
@Id
@Size(min = 15, max = 25)
private String id;
@Indexed
private Status status;
}
型号:
@Documented
@Constraint(validatedBy = DigitsLimitValidator.class)
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface DigitsLimit {
String message() default "Digits length is too short or long";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
int min() default 5;
int max() default 15;
}
在调试模式下,我无法在验证器中捕获任何断点。
在两次尝试中我都可以保存任意长度的数字。限制被忽略。为什么被忽略了?
答案 0 :(得分:0)
如何指定ID&#39;的长度限制?从15-25符号
使用Long
类型没有任何意义,因为Long.MAX_VALUE
只有&#34;只有&#34; 19位数。
9223372036854775807
要包含这样的值,BigInteger
可能是更好的选择。
您无法将@Min
和@Max
注释添加到BigInteger
字段,因为这些值仅限于Long
范围。所以你不能代表25位数。
所以你有两种方式:
创建a custom validator以确保您的约束得到尊重。
用String
替换数值。您可以使用javax.validation.constraints.Size
注释,该注释不适用于数字字段,但适用于CharSequence
字段,例如String
。
例如:
@Id
@Size(min=15, max=25)
private String id;