Était-ce utile?

La solution

Vous pouvez évidemment faire un

val updateResult = ....executeUpdate()
val success = updateResult.fold(e => false, c => true)

Il semble que vous pouvez également appeler

val success = updateResult.isRight

De manière plus générale, vous pouvez accéder à l'un ou l'autre enveloppé avec

updateResult.e match {
    case Left(error) => ... do something with error ...
    case Right(updateCount) => ...do something with updateCount...
}

Peut-être quelqu'un plus familier avec le jeu expliquerait pourquoi scala.Either est enveloppé dans MayErr?

Autres conseils

On dirait que MayErr est Either d'emballage. Il est donc ni Map ni Set, mais plutôt un objet qui peut contenir l'un des deux objets typés différemment.

Jetez un oeil à cette question , et vous verrez quelques-uns des moyens de traitement d'un objet ou l'autre, qui dans ce cas contient soit un IntegrityConstraintViolation ou un int. Se référant à http: // scala. playframework.org/.../Scala$MayErr.html , il semble que vous pouvez saisir un objet soit en se référant à l'élément de valeur e. Il semble y avoir trop une conversion implicite disponibles, il vous suffit de traiter un MayErr[IntegrityConstraintViolation,Int] comme Either[IntegrityConstraintViolation,Int] sans autre cérémonie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top