カテゴリ: Spring 更新日: 2026/01/29

JavaのSpringで使う@Digitsアノテーション完全ガイド!初心者向けの数値バリデーション解説

Springの@Digitsアノテーション
Springの@Digitsアノテーション

先生と生徒の会話形式で理解しよう

生徒

「Springで入力された数値をチェックしたいのですが、@Digitsアノテーションって何ですか?」

先生

「@Digitsアノテーションは、数値の整数部分と小数部分の桁数を制御するためのバリデーションです。例えば、金額や割合を入力するフォームで使われることが多いです。」

生徒

「なるほど!具体的にどのように使うのか知りたいです。」

先生

「それでは、@Digitsアノテーションの基本から使い方まで順番に解説していきましょう。」

1. @Digitsアノテーションとは?

1. @Digitsアノテーションとは?
1. @Digitsアノテーションとは?

JavaのSpringフレームワークにおける@Digitsアノテーションは、入力された数値が指定した桁数の範囲に収まっているかどうかを検証するためのバリデーションです。特にフォーム入力やリクエストパラメータで、桁数制限を設けたいときに活躍します。

例えば、整数部分は最大5桁、小数部分は2桁までといった制約を簡単に設定できます。これにより、不正な数値の入力を防ぎ、システムの信頼性を高めることができます。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

@Digitsは主にエンティティクラスやDTOクラスのフィールドに付与して使います。属性としては以下の2つが必須です。

  • integer:整数部分の最大桁数
  • fraction:小数部分の最大桁数

以下はサンプルコードです。


import jakarta.validation.constraints.Digits;

public class ProductForm {

    @Digits(integer = 5, fraction = 2)
    private BigDecimal price;

    // getter と setter
    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }
}

この例では、整数部分が最大5桁、小数部分が最大2桁までの数値だけを許容します。例えば「12345.67」はOKですが、「123456.78」や「123.456」はバリデーションエラーとなります。

3. 実際の入力例とエラーメッセージ

3. 実際の入力例とエラーメッセージ
3. 実際の入力例とエラーメッセージ

Spring Bootのバリデーション機能と組み合わせると、エラーが発生した際にメッセージを返すことができます。


import jakarta.validation.constraints.Digits;

public class OrderForm {

    @Digits(integer = 4, fraction = 1, message = "金額は整数4桁、小数1桁以内で入力してください")
    private BigDecimal amount;

    // getter と setter
}

入力値: 1234.5 → OK
入力値: 12345.6 → エラー (整数部分が5桁で制約違反)
入力値: 12.34 → エラー (小数部分が2桁で制約違反)

このようにして、ユーザーに分かりやすいエラーメッセージを提示できます。特に金額や割合の入力では有効に使われます。

Spring FrameworkやThymeleafを使った Webアプリ開発の全体像をやさしく理解したい人には、 この入門書が定番です。

Spring Framework超入門をAmazonで見る

※ Amazon広告リンク

4. @Digitsと他のアノテーションの組み合わせ

4. @Digitsと他のアノテーションの組み合わせ
4. @Digitsと他のアノテーションの組み合わせ

@Digitsは数値の桁数に関する制約を設定しますが、現実的なシステムではこれだけで不十分な場合もあります。そのため、@DecimalMin@DecimalMaxと組み合わせることがよくあります。


import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.Digits;

public class SalaryForm {

    @DecimalMin(value = "1000.0", message = "給与は1000以上で入力してください")
    @DecimalMax(value = "99999.9", message = "給与は99999.9以下で入力してください")
    @Digits(integer = 5, fraction = 1, message = "整数5桁、小数1桁以内で入力してください")
    private BigDecimal salary;

    // getter と setter
}

このように組み合わせることで「範囲チェック」と「桁数チェック」を両立させることができます。業務システムではこうした複合的なバリデーションが重要になります。

5. よくある間違いと注意点

5. よくある間違いと注意点
5. よくある間違いと注意点

初心者が@Digitsを使う際によくある間違いとして、次のような点があります。

  • 整数部分や小数部分を0に設定してしまい、全ての値がエラーになる
  • 文字列型のフィールドに@Digitsを付けて期待通り動かない
  • 通貨フォーマットやカンマ区切りの値を直接受け取ってバリデーションエラーになる

特に通貨などを扱う場合は、事前に文字列を数値型(BigDecimalやIntegerなど)に変換してから@Digitsを適用するのが正しい使い方です。

6. 実務での利用シーン

6. 実務での利用シーン
6. 実務での利用シーン

実務のSpring開発において@Digitsが使われる場面をいくつか挙げてみましょう。

  • 商品の価格入力フォームでのバリデーション
  • 金融システムにおける利率や金額のチェック
  • 数量や重量など、単位を伴う数値入力の検証
  • 注文金額や税額の計算時の桁数制限

これらの場面ではユーザーの誤入力を防ぎ、データの一貫性を保つために@Digitsは非常に役立ちます。

カテゴリの一覧へ
新着記事
Spring Frameworkでセッション管理をする!@SessionScopeの使い方を覚えよう!
JSPで改行やスペースを正しく表示する方法!HTMLとの連携ポイントも解説
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
Thymeleafのth:eachの使い方!ループ回数やindexなどの繰り返し処理を学ぼう
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.3
Java&Spring記事人気No3
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
No.4
Java&Spring記事人気No4
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.5
Java&Spring記事人気No5
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.7
Java&Spring記事人気No7
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス
No.8
Java&Spring記事人気No8
JavaのEnumクラスのordinalメソッドを徹底解説!初心者でもわかる列挙型の順序番号

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク