bean-validation-scala
• JSR 303のBean Validation
• Scala用に適当にラップ
• Option[String]とか検証可能
Bean Validation?
• 参考Bean Validationを試してみる - CLOVER
• いわゆるPOJO(case classとか)にAnnotationを付けてValidator.validate(obj)すると検証結果が得られる
Bean ValidationはJava用
!
• Java用のライブラリ
!
• Scalaでも使えるけど・・・
"org.hibernate" % "hibernate-validator" % "5.1.3.Final", "javax.validation" % "validation-api" % "1.1.0.Final", "org.glassfish" % "javax.el" % "3.0.0"
検証対象のクラス例• これは普通に動くけど
!
!
• これは動かない
case class Person( @(Size@field)(min = 1) name: String)
case class Person( @(Size@field)(min = 1) name: Option[String] )
エラーになるHV000030: No validator could be found for type: scala.Option<java.lang.String>. javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: scala.Option<java.lang.String>. at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.verifyResolveWasUnique(ConstraintValidatorManager.java:218) !(略)
Optionに対応した bean-validation-scala
• コードhttps://github.com/bean-validation-scala/bean-validation-scala
• デモ
ありがとうございました