想象一下,您有一个由单个类组成的域模型: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+)。
这里最好的做法是什么?