Excellent; I've filed https://hibernate.atlassian.net/browse/HHH-12287 for
this. I'll try and find some time to provide a PR.

What's the cut-off date for 5.3?

2018-02-10 16:17 GMT+01:00 Steve Ebersole <st...@hibernate.org>:

> Yes, I agree.
>
> On Sat, Feb 10, 2018, 7:55 AM Gunnar Morling <gun...@hibernate.org> wrote:
>
>> 2018-02-09 16:26 GMT+01:00 Steve Ebersole <st...@hibernate.org>:
>>
>>> I think constraints should be exported to the DDL when the mode is DDL
>>> or `hibernate.validator.apply_to_ddl == true`.  I'd personally say that
>>> `hibernate.validator.apply_to_ddl` still works with NONE - as y'all
>>> keep saying, mode is about in-memory callbacks.  In fact because of that,
>>> we should even consider:
>>>
>>>    1. droping DDL as an allowable mode
>>>    2. no longer allowing multiple values
>>>
>>> Sounds great. Exactly what I had in mind :)
>>
>>
>>> Additionally I'd say that AUTO maps to CALLBACK *as long as BV is
>>> available on the classpath.  As I understand it, using CALLBACK mode is
>>> supposed to cause an error when BV is not available on classpath.  AUTO
>>> would silently ignore that.
>>>
>>
>> Exactly. That's why I recommend users to go with CALLBACK over AUTO.
>>
>> WDYT?
>>>
>>
>> Seems we're on the same page. I can do this change, my only question
>> would be about dropping the DDL enum member and rejecting multiple values
>> (your 1. and 2. above). Should we first (i.e. in 5.3) deprecate the enum
>> member and log a warning if multiple values are given?
>>
>>
>>>
>>> On Fri, Feb 9, 2018 at 9:14 AM Gunnar Morling <gun...@hibernate.org>
>>> wrote:
>>>
>>>> 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

Reply via email to