2010-03-04 8 views
6

Tengo una aplicación JSF 2.0 para la que me gustaría comenzar a agregar validadores. Una descripción básica de la arquitectura de la aplicación es la siguiente.¿Debo usar Bean Validation con EJB 3.1, JSF2.0 y JPA?

He administrado Backing Beans que contienen instancias de mis clases anotadas JPA y EJB. Los EJB son responsables de acceder a la base de datos de forma transaccional. Las clases con anotaciones de JPA están ligadas a mis facelets (y usan los EJB para el acceso a db).

Me gustaría utilizar potencialmente la validación de Bean y escribir restricciones personalizadas, sin embargo, esto significará que tengo que agregar esas restricciones a mis clases anotadas de JPA. Esto me parece que está violando mi separación de preocupaciones. (Mezcla de presentación/validación con las clases anotadas de JPA/DAO) ¿Es mejor no usar la validación de Bean en este caso? ¿Está mi estructura defectuosa? ¿Hay una forma preferida de hacer esto que yo no sepa?

Gracias!

Respuesta

5

La validación forma parte de la lógica de su empresa y, por lo tanto, debe estar presente en su modelo de dominio, que son sus entidades de persistencia. Así que no hay absolutamente nada de malo en tenerlos dentro de sus entidades JPA.

Las validaciones no pertenecen a la presentación porque incluso si cambia la capa de presentación (digamos que va a exponer un montón de servicios web en sus EJB), la validación aún debe estar allí.

Cuestiones relacionadas