Java で文字列を検証して、次の正規表現を使用して randomUUID 形式と一致するかどうかを確認しようとしています
^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$
これで問題なく動作し、無効な文字列などを検出します。ただし、NULL 文字列を正規表現に渡すと true が返されるため、Pattern アノテーションで検証を実行しても、制約違反は報告されません。String が null であるため、検証を実行していないため、これは予想される動作ですか?
これを回避する方法として、Pattern アノテーションでアノテーションを付けた getter メソッドで、これを使用しました
return id != null ? id : "null"
これは機能しますが、少し...ハッキーなようです:)