我有实体:
public class User {
private Long id;
private String name;
private String lastName;
private String email;
private String password;
// getters and setters
}
我想在表示层中将它用作表单备份对象,但它没有我需要的字段。在这种情况下,我需要重复密码字段。
在不修改实体类的情况下,解决此问题的最佳方法是什么?
我应该扩展此实体类并添加所需的字段吗?
我应该创建一个具有getter和setter字段private User user;
的新类吗?
我应该复制/粘贴此类,然后添加所需的字段吗?
答案 0 :(得分:1)
三种不同的解决方案:
处理表单上的输入字段与实体不匹配的情况的常用方法是使用Command对象(这是Sotirios在评论中提倡的)。为此而不是实体创建单独的对象比扩展实体以添加与持久性无关的内容要小得多。
在这种情况下有争议的是,不需要将repeatedPassword
字段传递回服务器,验证可以完全在客户端完成,输入字段不需要绑定到了一个Java pojo。
如果你真的想将repeatedPassword
传递回服务器(这样你就可以在服务器上进行所有验证 - 虽然重复密码比用户更方便验证)然后你可以使用@Transient声明将repeatedPassword
字段添加到User实体。