假设我有以下用于创建用户的命令 bean:
public class CreateUserCommand {
private String userName;
private String email;
private Integer occupationId;
pirvate Integer countryId;
}
occupationId 和 countryId 是在表单上下拉选择的值。它们映射到数据库中的实体(职业、国家)。
此命令对象将像这样被提供给服务外观:
userServiceFacade.createUser(CreateUserCommand 命令);
此外观将构造一个用户实体以发送到实际服务。所以我想在外观层我将不得不进行几次 dao 调用来映射用户实体的所有查找属性。
基于此,验证 occupationId 和 countryId 映射到真实实体的最佳策略是什么?执行此验证的最佳位置在哪里?有 spring validator ,但我不确定这是最好的地方,因为我对这种方法持谨慎态度,因为验证与 web 层相关联,但这也意味着我需要在 validator 中进行 dao 调用用于验证,但当发生命令 -> 实体转换时,我需要再次调用外观层中的 dao。
有什么我可以做得更好的吗?
谢谢。
您确定需要 DTO 来检索实体吗?
我想你的用户如下
public class User implements Serializable {
private String userName;
private String email;
private Occupation occupation;
private Country country;
}
通常,在显示表单时引用另一个实体是通过使用一些