我应该在EJB 3.1,JSF2.0和JPA中使用Bean Validation吗?

时间:2010-03-04 03:31:15

标签: java validation jsf jpa ejb

我有一个JSF 2.0应用程序,我想开始添加验证器。应用程序架构的基本概述如下:

我有Managed Backing Beans,它包含我的JPA注释类和EJB的实例。 EJB负责以事务方式访问数据库。 JPA带注释的类是我的facelets的值绑定(并使用EJB进行数据库访问)。

我想潜在地使用Bean验证并编写自定义约束,但这意味着我必须将这些约束添加到我的JPA注释类中。在我看来,这似乎违反了我对问题的分离。 (将演示文稿/验证与JPA注释类/ DAO混合)在这种情况下不使用Bean验证会更好吗?我的结构有缺陷吗?是否有一种我不了解的首选方式?

谢谢!

1 个答案:

答案 0 :(得分:5)

验证是业务逻辑的一部分,因此必须存在于您的域模型中,这是您的持久性实体。因此,在JPA实体中使用它们绝对没有错。

验证不属于演示文稿,因为即使您更改了表示层(假设您要在EJB上公开一堆Web服务),验证仍然需要在那里。