Teeda @ByteLengthはデフォルトエンコード

もう1つ思い出しました。

バイト数についてのValidator
@ByteLength
ですが、デフォルトエンコードが使われているため、気をつける必要があるようです。

プラットフォームが変わると、バイト数が変わってしまいます。

ただ、自分でValidator用のannotation作れば簡単に対応できます。

↓みたいな感じでよかったような。

@Retention(RetentionPolicy.RUNTIME)
@Target( { ElementType.FIELD, ElementType.METHOD })
@Validator("TByteLengthValidator")
public @interface XXByteLength {
int minimum() default -1;
int maximum() default -1;
String target() default "";
String minimumMessageId() default "";
String maximumMessageId() default "";
String charSet() default "Shift_JIS";
}