Spring Boot で @NotBlank や @NotEmpty などのバリデーションアノテーションを使おうとした際、javax.validation.constraints が Eclipse 上で importエラー になり、意外とハマったので備忘録として残しておきます。
発生した問題
javax.validation.constraints.NotEmpty
や NotNull
をインポートしようとしたところ、以下のようなエラーが出て インポートが解決できませんでした。
import javax.validation.constraints.NotEmpty; // ← 赤波線が出る
import javax.validation.constraints.NotNull;
- Eclipse 2023-12 使用
- Spring Boot 3.2.x を使用中
原因
結論から言うと、
validation-api の依存がプロジェクトに存在していなかった
または、Eclipseのビルドパスに反映されていなかった
のが原因でした。
解決方法
1. spring-boot-starter-validation
を pom.xml
に追加
まずは、Mavenプロジェクトの pom.xml
に以下の依存関係を追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
このスターターにより、javax.validation:validation-api
や hibernate-validator
など必要なライブラリが自動的に取り込まれます。
2. Eclipse で Maven プロジェクトを再同期
依存を追加しただけでは Eclipse に反映されないこともあります。以下の操作を行ってください:
- プロジェクト右クリック → Maven → Update Project...(または
Alt + F5
) - チェックを入れて「OK」
これでエラーが消えることが多いです。
3. それでも解消しないとき(手動でJAR追加)
それでもうまくいかない場合は、ローカルMavenリポジトリにある JAR を Eclipse のビルドパスに直接追加するという裏技もあります。
コピーする
編集する
C:\Users\xxxxxx\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar
- Eclipseプロジェクト右クリック → Build Path → Configure Build Path
- 「Libraries」タブで JAR を追加
まとめ
対処 | 内容 |
---|---|
✅ 必須 |
spring-boot-starter-validation の追加(Maven依存) |
✅ 推奨 | Maven Update (Alt + F5 ) |
⛏ 応急処置 |
validation-api.jar の直接追加(最終手段) |
補足:使えるバリデーションアノテーション一覧(一部)
-
@NotNull
:null禁止(空文字はOK) -
@NotEmpty
:null・空文字列禁止(スペースはOK) -
@NotBlank
:null・空文字・スペースのみ禁止 -
@Size(min=, max=)
:文字列やリストのサイズ制約 -
@Email
:メールアドレス形式チェック