[hibernate-dev] Does <one-to-one ... constrained="false"> make sense for unidirectional association?

Gail Badner gbadner at redhat.com
Tue Oct 30 00:24:45 EDT 2018


The fix for HHH-12436 involves correcting the foreign key direction for
some one-to-one assocations. In the process of making changes I see that we
have a unit test that has a unidirectional one-to-one association mapped
with constrained="false". [1]

ModelBinder assumes that <one-to-one ... constrained = "true"> means that
the foreign key direction is FROM_PARENT; if constrained = "false", it
assumes that the foreign key direction is TO_PARENT. [2]

It seems odd to me that the foreign key direction for a unidirectional
association would be TO_PARENT.

Should the unit test have constrained = "true"?

If not, should ModelBinder check to see if the association is bidirectional
and determine which side owns the association? This would probably require
adding a SecondPass.

Please let me know your thoughts.

Regards,
Gail

[1]
https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/test/java/org/hibernate/test/onetoone/optional/Person.hbm.xml
[2]
https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/ModelBinder.java#L2114-L2131


More information about the hibernate-dev mailing list