0

我有一个用户模型,其方案如下所示:

# --- First database schema

# --- !Ups

create sequence s_user_id;

create table user (
  id  bigint DEFAULT nextval('s_user_id'),
  firstName  varchar(128),
  lastName  varchar(128),
  email  varchar(128) unique
);


# --- !Downs

drop table user;
drop sequence s_user_id;

我怎样才能验证新用户,而不是仅仅崩溃

RuntimeException:执行语句时出现异常:唯一索引或主键违规:

?

另外,我没有使用任何形式或任何形式的视图。我只是在创建一个 API...

4

1 回答 1

0

您可以使用表单来定义和触发您的验证规则。

请注意,您可以使用没有 UI 的表单,数据可以来自您想要的(WS、代码、html ...)

举个例子 :

case class User(name: String, age: Int)

val userForm = Form(
  mapping(
    "name" -> text.verifying(required),
    "age" -> number.verifying(min(0), max(100))
  ) verifying("Your custom validation", fields => fields match { 
      case (n, a) => User.myCustomValidation(n,a) 
  }) (User.apply)(User.unapply)
)

val filledForm = userForm.fill(User("Bob", 18))
if (filledForm.hasErrors) {
 // or filledForm.fold
}

有关更多详细信息或更复杂的示例,请参阅ScalaForms文档。

于 2012-08-15T16:36:20.113 回答