Bean Validation website screenshot

Bean Validation

Jakarta Bean Validation (formerly Java Bean Validation / JSR 380) is a Java specification providing a standardized constraint model and API for validating Java beans using annotations. It defines built-in constraints (@NotNull, @Size, @Min, @Max, @Pattern, @Email, etc.), a Validator API, constraint inheritance, and method/constructor parameter validation. The current stable release is Jakarta Validation 3.1. Hibernate Validator is the reference implementation. The specification is governed by the Jakarta EE Working Group under the Eclipse Foundation.

3 APIs 6 Features
Bean ValidationData QualityJavaValidationJakarta EEConstraints

APIs

Jakarta Bean Validation Specification 3.1

The Jakarta Bean Validation 3.1 specification defines the constraint model, annotation processor, Validator API, method validation, group sequences, cascaded validation, constra...

Hibernate Validator

Hibernate Validator is the reference implementation of Jakarta Bean Validation. Version 9.1.0.Final implements the Jakarta Validation 3.1 specification. It provides the Validato...

Jakarta Validation API

The Jakarta Validation API JAR provides the interfaces, annotations, and exception types that constitute the Bean Validation specification contract. Constraint annotations (@Not...

Pricing Plans

Rate Limits

Bean Validation Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Annotation-Based Constraints

Define validation constraints on Java beans using annotations such as @NotNull, @Size, @Min, @Max, @Pattern, @Email, and @Past.

Method Validation

Validate method and constructor parameters and return values using constraint annotations on method signatures.

Constraint Composition

Compose multiple constraints together using @Constraint and meta-annotations to create custom reusable constraint annotations.

Group Sequences

Define validation groups and group sequences for ordered, conditional validation scenarios.

Cascaded Validation

Trigger validation of nested objects using @Valid annotation for graph-level constraint validation.

Programmatic API

Build and configure validators programmatically using the Validator and ValidatorFactory APIs without annotations.

Use Cases

REST API Input Validation

Validate request body and query parameters in JAX-RS and Spring REST controllers using Bean Validation annotations.

Form Validation

Validate user-submitted form data in Jakarta Faces, Spring MVC, and other web frameworks.

Domain Model Validation

Enforce business rules and data integrity constraints on JPA entity classes and domain objects.

Microservices Contract Validation

Validate inter-service request and response payloads to enforce API contracts in microservices architectures.

Integrations

Spring Framework

Spring integrates Jakarta Bean Validation for controller method argument validation and service layer validation.

Jakarta Persistence (JPA)

JPA providers call the Validator API before persisting entities to enforce database-layer constraint validation.

Quarkus

Quarkus uses Hibernate Validator as its Bean Validation implementation with zero-config support in native images.

Jakarta Faces (JSF)

Jakarta Faces integrates Bean Validation for automatic form field validation in web applications.

Micronaut

Micronaut Framework uses Bean Validation for controller parameter and return value validation.

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
🔗
Versioning
Versioning

Sources

apis.yml Raw ↑
aid: bean-validation
name: Bean Validation
description: Jakarta Bean Validation (formerly Java Bean Validation / JSR 380) is a Java specification providing a standardized
  constraint model and API for validating Java beans using annotations. It defines built-in constraints (@NotNull, @Size,
  @Min, @Max, @Pattern, @Email, etc.), a Validator API, constraint inheritance, and method/constructor parameter validation.
  The current stable release is Jakarta Validation 3.1. Hibernate Validator is the reference implementation. The specification
  is governed by the Jakarta EE Working Group under the Eclipse Foundation.
type: Index
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
tags:
- Bean Validation
- Data Quality
- Java
- Validation
- Jakarta EE
- Constraints
url: https://raw.githubusercontent.com/api-evangelist/bean-validation/refs/heads/main/apis.yml
created: '2025-01-01'
modified: '2026-04-19'
specificationVersion: '0.19'
apis:
- aid: bean-validation:specification
  name: Jakarta Bean Validation Specification 3.1
  description: The Jakarta Bean Validation 3.1 specification defines the constraint model, annotation processor, Validator
    API, method validation, group sequences, cascaded validation, constraint composition, and the metadata API for introspecting
    validation constraints on Java classes, fields, methods, and constructors.
  humanURL: https://beanvalidation.org/3.1/
  tags:
  - Bean Validation
  - Java
  - Jakarta EE
  - Specification
  properties:
  - type: Documentation
    url: https://beanvalidation.org/3.1/
  - type: Specification
    url: https://jakarta.ee/specifications/bean-validation/3.1/
  - type: GitHubRepository
    url: https://github.com/jakartaee/validation
- aid: bean-validation:hibernate-validator
  name: Hibernate Validator
  description: Hibernate Validator is the reference implementation of Jakarta Bean Validation. Version 9.1.0.Final implements
    the Jakarta Validation 3.1 specification. It provides the Validator, ValidatorFactory, ConstraintViolation APIs, additional
    built-in constraints beyond the spec, programmatic constraint definition, and message interpolation. Available via Maven
    Central and published under Apache 2.0.
  humanURL: https://hibernate.org/validator/
  tags:
  - Bean Validation
  - Java
  - Reference Implementation
  - Hibernate
  properties:
  - type: Documentation
    url: https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/
  - type: GettingStarted
    url: https://hibernate.org/validator/documentation/getting-started/
  - type: GitHubRepository
    url: https://github.com/hibernate/hibernate-validator
  - type: SDKs
    url: https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator
    title: Maven Central
- aid: bean-validation:jakarta-validation-api
  name: Jakarta Validation API
  description: The Jakarta Validation API JAR provides the interfaces, annotations, and exception types that constitute the
    Bean Validation specification contract. Constraint annotations (@NotNull, @Size, @Min, @Max, @Pattern, @Email, @Future,
    @Past, @Positive, @Negative, etc.), Validator, ValidatorFactory, ConstraintViolation, and Path types are all defined in
    the API. Available on Maven Central.
  humanURL: https://jakarta.ee/specifications/bean-validation/3.1/
  tags:
  - Bean Validation
  - Java
  - API
  - Jakarta EE
  properties:
  - type: Specification
    url: https://jakarta.ee/specifications/bean-validation/3.1/
  - type: SDKs
    url: https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api
    title: Maven Central
common:
- type: Website
  url: https://beanvalidation.org/
- type: Documentation
  url: https://beanvalidation.org/2.0/spec/
- type: GitHubOrganization
  url: https://github.com/jakartaee
- type: Versioning
  url: https://beanvalidation.org/news/
- type: Features
  data:
  - name: Annotation-Based Constraints
    description: Define validation constraints on Java beans using annotations such as @NotNull, @Size, @Min, @Max, @Pattern,
      @Email, and @Past.
  - name: Method Validation
    description: Validate method and constructor parameters and return values using constraint annotations on method signatures.
  - name: Constraint Composition
    description: Compose multiple constraints together using @Constraint and meta-annotations to create custom reusable constraint
      annotations.
  - name: Group Sequences
    description: Define validation groups and group sequences for ordered, conditional validation scenarios.
  - name: Cascaded Validation
    description: Trigger validation of nested objects using @Valid annotation for graph-level constraint validation.
  - name: Programmatic API
    description: Build and configure validators programmatically using the Validator and ValidatorFactory APIs without annotations.
- type: UseCases
  data:
  - name: REST API Input Validation
    description: Validate request body and query parameters in JAX-RS and Spring REST controllers using Bean Validation annotations.
  - name: Form Validation
    description: Validate user-submitted form data in Jakarta Faces, Spring MVC, and other web frameworks.
  - name: Domain Model Validation
    description: Enforce business rules and data integrity constraints on JPA entity classes and domain objects.
  - name: Microservices Contract Validation
    description: Validate inter-service request and response payloads to enforce API contracts in microservices architectures.
- type: Integrations
  data:
  - name: Spring Framework
    description: Spring integrates Jakarta Bean Validation for controller method argument validation and service layer validation.
  - name: Jakarta Persistence (JPA)
    description: JPA providers call the Validator API before persisting entities to enforce database-layer constraint validation.
  - name: Quarkus
    description: Quarkus uses Hibernate Validator as its Bean Validation implementation with zero-config support in native
      images.
  - name: Jakarta Faces (JSF)
    description: Jakarta Faces integrates Bean Validation for automatic form field validation in web applications.
  - name: Micronaut
    description: Micronaut Framework uses Bean Validation for controller parameter and return value validation.
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com