如何为不同的请求实现不同的约束?例如,有User
类:
public class User extends Model{
@Required
@Email
@Id
public String email;
@Required
@Column(length = 50)
public String firstname;
@Required
@Column(length = 50)
public String lastname;
@Required
public String password;
}
当我创建新用户时,需要所有约束。但是当我更新用户信息时,我不需要密码约束。
我应该为createUser()
和updateUser()
操作创建单独的类吗?
有什么方法可以只使用一个班级吗?
答案 0 :(得分:1)
混合"后端实体"是不好的做法。使用"前端实体"进行注释注释。创建单独的类以插入用户并相应地使用@Required注释更新用户。从User实体中删除前端注释,只留下JPA注释,如@Id @Column等。
答案 1 :(得分:0)
由于Play的验证框架符合Java bean验证规范(JSR-303),因此您可以使用属于规范的验证组功能。这正是您正在寻找的 - 为不同的操作实施不同验证规则的巧妙方法。您可以在this answer I gave to a similar question中的代码中查看如何使用它的示例。