持久性/表单/验证的不同域对象

时间:2015-06-29 21:40:21

标签: java hibernate

想象一下,您有一个由单个类组成的域模型:SELECT agg.Employee_Num , agg.Client_Num , agg.dmin Deduction_1 , CASE agg.dmax WHEN 30 THEN agg.dmax else NULL END Deduction_30 FROM ( SELECT Employee_Num , Client_Num , MIN (Deduction_Num) dmin , MAX (Deduction_Num) dmax FROM Employee_Deductions GROUP BY Employee_Num , Client_num ) agg ;

您正在使用Hibernate将该模型持久保存到数据库中。这意味着您将添加持久性注释,如

Employee

在你的领域。

然后,您决定要为Web创建一个用于创建Employees的表单。这意味着,您将在视图/控制器中将该模型公开到Web图层作为表单支持模型。

然后,您决定要进行一些验证。 Hibernate验证似乎是一个好主意,您将添加验证注释,如

@Id
@Column
@GeneratedValue
@Enumerated

现在,对于我@NotNull @Size @Min 课程中firstName这样的字段,我现在有关于它的不同关注点的注释,它用于不同用途:持久性网站验证

Employee

一方面,我可以为每个问题创建一个不同的类。但这有必要维持所有这些领域的缺点。另一方面,我可以有一个具有所有这些注释的模型(每个字段4+)。

这里最好的做法是什么?

1 个答案:

答案 0 :(得分:0)

我最终使用Dozer并复制了POJO