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

Gail Badner gbadner at redhat.com
Fri Oct 5 14:16:59 EDT 2018


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