有没有简单的方法用squeryl验证字段长度?

时间:2014-04-10 04:04:20

标签: validation scala orm squeryl

我在播放框架中使用了squeryl,并定义了一些内容:

case class User(name:String, age:Int, ...) extends KeyedEntity[Long] {
  val id = 0
}

数据库中name字段的长度定义为varchar(50)

由于我们需要在保存到数据库之前验证name之类的值,我必须手动验证它们:

checkLengthOf(user.name, 50);

如果还有很多字段,我需要手动进行大量验证:

checkLengthOf(user.field1, ???);
checkLengthOf(user.field2, ???);
checkLengthOf(user.field3, ???);
checkLengthOf(user.field3, ???);
checkLengthOf(user.field4, ???);

我想知道有没有简单的方法可以做到这一点?

当我在Java时,有一些orm框架提供了一些自动进行验证的注释,我可以用squeryl做同样的事吗?

1 个答案:

答案 0 :(得分:0)

Squeryl本身不提供验证。它的目的是为了只做一个非常有效的DSL与数据库交互。

如果你真的想要自动化,你可以自己做。 Squeryl 0.9.6(目前在RC2)提供生命周期回调方法,您可以使用它们来插入自己的验证逻辑。它尚未记录,但您可以看到一些示例In the tests

由于Squeryl使用编译为常规Java对象的POSO,您甚至可以使用它来插入Java库,如hibernate-validations .....如果你真的想要。

我不知道您是如何收到更新的,但另外还有一件事可能是lift-squeryl-record。它允许您将字段定义为对象及其验证逻辑。 Record还集成了Lift的CRUD生成和LiftScreen,这是一个非常强大的工具,用于定义表单以及验证和处理逻辑。