Vaadin dudes: What is the situation with finishing the JSR-303 support on V

I was surprised to notice that BeanValidatorBinder doesn’t seem to support JSR-303 bean-level validations/cross-field validations.
There seems to be an issue on this that hasn’t moved since march https://github.com/vaadin/framework/issues/8498 and the support was advertised to be in 8.0 already: https://vaadin.com/blog/vaadin-framework-8-comes-with-java-8-native-apis.

Anyone from Vaadin listening? I would be interested to hear if there are there any plans to do something about this shortcoming. I don’t have the resources to spare for any temporary workarounds and my schedules allow me to wait for a solution for some time. So just knowing if it’s going to be fixed or not would do for now.

How other users have been utilizing their JSR-303 cross-field validations with Vaadin?

There is an add-on Easy binder that solves a lot of bugs/features (not only crossfield validation) but I didn’t use it.
(In fact, I don’t want to use an add-on as Binder is a core feature of Vaadin 8)

Thanks for the tip! I came across that as well, but I’m not that into using add-ons in general. Of course I have to re-consider if for some Vaadin core wouldn’t be updated to have better support for JSR-303 validation. I still have high hopes :slight_smile:

You left me a bit curious though, what was your solution then?

I don’t use it in my application. (It’s a special case because I don’t want to block my user if something is missing/wrong, but I validate my data later. It’s an handmade solution and not related to Vaadin). For “stupid” screen (CRUD stuff …), it will be “nice”.
With EasyBinder add-on, you can’t use readBean/writeBean and I use this in my application.

I read the BeanValidationBinder to understand how it’s working:
BeanValidationBinder apply a validator for each field and try to validateProperty (and display the first found error). So it’s not working if you use a lambda (or getter/setter) and if you want to validate a constraints on the bean level.
With setBean, you can validate your bean (because you have the updated bean) but how can you bind the error to the right field ? (or to something else if it’s not related to a property)
With readBean/writeBean, you can’t validate your bean (only after writeBean).

BeanValidationBinder is easy to understand but implement the entire bean validation is not :/.