播放框架,请求的不同约束

时间:2014-10-17 04:04:25

标签: playframework playframework-2.2

如何为不同的请求实现不同的约束?例如,有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()操作创建单独的类吗? 有什么方法可以只使用一个班级吗?

2 个答案:

答案 0 :(得分:1)

混合"后端实体"是不好的做法。使用"前端实体"进行注释注释。创建单独的类以插入用户并相应地使用@Required注释更新用户。从User实体中删除前端注释,只留下JPA注释,如@Id @Column等。

答案 1 :(得分:0)

由于Play的验证框架符合Java bean验证规范(JSR-303),因此您可以使用属于规范的验证组功能。这正是您正在寻找的 - 为不同的操作实施不同验证规则的巧妙方法。您可以在this answer I gave to a similar question中的代码中查看如何使用它的示例。