Robust applications need data validation in several different places. Seam integrates Hibernate Validator,
a set of annotations for expressing data model constraints in your domain model classes. Then, these
constraints are applied almost completely transparently at three levels of the application: by Seam when
the user first enters data, by EJB before persisting data to the database, and, if you use Hibernate to
generate your database schema, by the database constraints themselves. Multi-layer validation hardens
your application and protects your data. Even better, it's self-documenting, and easy to change when
your business rules change.