8
bean-validation-scala rpscala 143回 2015/02/11 @s_tsuka Shuya Tsukamoto

bean-validation-scala

Embed Size (px)

Citation preview

Page 1: bean-validation-scala

bean-validation-scalarpscala 143回

!2015/02/11 @s_tsuka

Shuya Tsukamoto

Page 2: bean-validation-scala

bean-validation-scala

• JSR 303のBean Validation

• Scala用に適当にラップ

• Option[String]とか検証可能

Page 3: bean-validation-scala

Bean Validation?

• 参考Bean Validationを試してみる - CLOVER

• いわゆるPOJO(case classとか)にAnnotationを付けてValidator.validate(obj)すると検証結果が得られる

Page 4: bean-validation-scala

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"

Page 5: bean-validation-scala

検証対象のクラス例• これは普通に動くけど

!

!

• これは動かない

case class Person( @(Size@field)(min = 1) name: String)

case class Person( @(Size@field)(min = 1) name: Option[String] )

Page 6: bean-validation-scala

エラーになる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) !(略)

Page 7: bean-validation-scala

Optionに対応した bean-validation-scala

• コードhttps://github.com/bean-validation-scala/bean-validation-scala

• デモ

Page 8: bean-validation-scala

ありがとうございました