[hibernate-dev] *-to-one associations and @NotFound

Gail Badner gbadner at redhat.com
Fri Oct 5 19:03:15 EDT 2018


I thought of another case that hasn't been discussed fully. It's covered in
the section, Possible Anomalies - @NotFound(EXCEPTION) has no effect in
some cases - Non-Optional Associations.

Guillaume and Stephen, please take a look and let me know your thoughts.

Thanks,
Gail

On Fri, Oct 5, 2018 at 11:16 AM Gail Badner <gbadner at redhat.com> wrote:

> After discussions with Stephen Fikes and Guillaume, I've added resolutions
> to the document.
>
> In a nutshell, here is what we decided.
>
> 1) Ccombination of @NotFound(IGNORE) and non-optional
> one-to-one/many-to-one will throw MappingException.
>
> 2) Combination of @NotFound(IGNORE) and "mappedBy" one-to-one/many-to-one
> will log a WARN message that @NotFound(IGNORE) will be ignored and should
> be removed.
>
> 3) When a non-lazy association's join column is non-null and there is no
> associated entity with the referenced column:
>
>    - log an INFO message with the exception in an INFO message with
>    ObjectNotFoundException including the entity name and referenced column and
>    value that was not found; (we decided to continue logging as INFO because
>    this condition can only happen if there is no foreign key; so in a sense,
>    the application "knows" this condition is possible)
>    - in the log message, if possible, include the association owner
>    entity and its ID; this will make it easier to clean up the inconsistency
>    in the database;
>    - return a non-null entity with a null association.
>
> Regards,
> Gail
>
> On Mon, Sep 24, 2018 at 4:03 PM Gail Badner <gbadner at redhat.com> wrote:
>
>> As a result of fixing HHH-12436
>> <https://hibernate.atlassian.net/browse/HHH-12436>, some eager *-to-one
>> associations that were loaded using FetchMode.JOIN may instead be loaded
>> using FetchMode.SELECT, and vice-versa. In some cases, @NotFound behavior
>> is different depending on the FetchMode for the association.
>>
>>
>> The reason why FetchMode may change due to HHH-12436
>> <https://hibernate.atlassian.net/browse/HHH-12436> is that the
>> ForeignKeyDirection of some *-to-one associations were incorrect.
>> Correcting the ForeignKeyDirection will result in a different
>> AssociationKey, which may ultimately affect the FetchMode Hibernate assigns
>> to an association.
>>
>>
>> My hope is to resolve the inconsistencies before fixing HHH-12436
>> <https://hibernate.atlassian.net/browse/HHH-12436>, so it does not
>> result in a change in application behavior.
>>
>>
>> I've created a Google Doc to document the inconsistencies and to make it
>> easier to discuss how to go about resolving them:
>>
>>
>> https://docs.google.com/document/d/1o3Q6tYD5jjxC6Ok7vBYzxRGsixpG46p-5zDiDCAKLsI/
>>
>>
>> Please feel free to request access to the document if you wish to review
>> or add comments.
>>
>>
>> Regards,
>>
>> Gail
>>
>>


More information about the hibernate-dev mailing list