Ok, so the constraints would be added to DDL when "hibernate .validator.apply_to_ddl" is true and validation mode is one of {AUTO, CALLBACK, DDL}. And they wouldn't be added to the DDL if "hibernate .validator.apply_to_ddl" is false or validation mode is NONE?
That'd work for me. 2018-02-07 21:07 GMT+01:00 Steve Ebersole <st...@hibernate.org>: > No, I think you are right and `hibernate.validator.apply_to_ddl` should > apply to CALLBACK as well. > > On Wed, Feb 7, 2018 at 1:45 PM Gunnar Morling <gun...@hibernate.org> > wrote: > >> > How is a String "CALLBACK,DDL" considered "multiple values" to an XSD? >> >> I was referring to the dedicated <validation-mode> element, which is >> restricted to the values AUTO, CALLBACK, NONE in that XSD and which can >> be given at most once [1]. I can see though how it'd work with the >> javax.persistence.validation.mode String property. >> >> So, yeah, technically no change needed. Still quite subtle and very easy >> to miss. Waiting a bit for some more feedback by others, if we decide to >> leave it as is, we need at least to update the HV docs to describe this in >> more depth (we only mention <validation-mode> but not that string property). >> >> [1] https://github.com/hibernate/hibernate-orm/blob/ >> master/tooling/metamodel-generator/src/main/xsd/ >> persistence_2_1.xsd#L326-L339. >> >> 2018-02-07 20:05 GMT+01:00 Steve Ebersole <st...@hibernate.org>: >> >>> How is a String "CALLBACK,DDL" considered "multiple values" to an XSD? >>> >>> Look, I don't mind revisiting a change here. I really have no horse n >>> this race - this is not even my code originally. TBH I thought this was >>> code that you did. So I don't mind changes here if there is a consensus. >>> But let's use real reasons ;) >>> >>> On Wed, Feb 7, 2018 at 12:53 PM Gunnar Morling <gun...@hibernate.org> >>> wrote: >>> >>>> Right, giving multiple values isn't allowed as per JPA's XSD. >>>> >>>> 2018-02-07 19:44 GMT+01:00 Steve Ebersole <st...@hibernate.org>: >>>> >>>>> Of course you can. `mode = CALLBACK,DDL` >>>>> >>>>> You mean that you cannot using single-valued setting >>>>> >>>>> On Wed, Feb 7, 2018 at 12:02 PM Gunnar Morling <gun...@hibernate.org> >>>>> wrote: >>>>> >>>>>> 2018-02-07 16:08 GMT+01:00 Steve Ebersole <st...@hibernate.org>: >>>>>> >>>>>>> Ok, so this is the crux then because it really comes down to whether >>>>>>> you >>>>>>> believe whether it is valid to *only* export the annotation-based >>>>>>> validations as DDL. >>>>>>> >>>>>>> And keep in mind that this code is basically unchanged from all the >>>>>>> way >>>>>>> back to the initial "integrations" with HV. So back then the >>>>>>> thought-process (not mine, btw) was that yes, that *is* valid - >>>>>>> hence the >>>>>>> option to chose just DDL as an option. >>>>>>> >>>>>> >>>>>> You'd still have that ability with my suggestion, just keep >>>>>> validation mode to NONE and set hibernate.validator.apply_to_ddl = >>>>>> true. >>>>>> >>>>>> By "safest mode" above I meant CALLBACK is the right way if you >>>>>> really want to make sure that lifecycle validation occurs, or you'll get >>>>>> an >>>>>> exception if no BV provider is present. It can't happen that lifecycle >>>>>> validation silently, unexpectedly doesn't happen. Hence I prefer it over >>>>>> AUTO. And as things stand I can't benefit from constraints in DDL export >>>>>> in >>>>>> that case, which is a pity. >>>>>> >>>>>> But if thats now no longer valid then that changes things. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Tue, Feb 6, 2018 at 3:15 PM Guillaume Smet < >>>>>>> guillaume.s...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>> >>>>>>> > Hi, >>>>>>> > >>>>>>> > On Tue, Feb 6, 2018 at 5:01 PM, Steve Ebersole < >>>>>>> st...@hibernate.org> >>>>>>> > wrote: >>>>>>> >> >>>>>>> >> Is it valid for a user to want *just* DDL-based validation? How >>>>>>> would >>>>>>> >> that >>>>>>> >> work in Gunnar's request? >>>>>>> >> >>>>>>> > >>>>>>> > From your writings, I suspect I'm the only one with this opinion >>>>>>> but my >>>>>>> > answer would be: "not if you use Bean Validation annotations". >>>>>>> > >>>>>>> > If you use BV's @NotNull, you expect BV to validate the input. And >>>>>>> you >>>>>>> > might want additional DDL in your database to be on the safe side >>>>>>> (which >>>>>>> > should be the default IMHO). >>>>>>> > >>>>>>> > -- >>>>>>> > Guillaume >>>>>>> > >>>>>>> _______________________________________________ >>>>>>> hibernate-dev mailing list >>>>>>> hibernate-dev@lists.jboss.org >>>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev >>>>>>> >>>>>> >>>> >> _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev