gbadner/hibernate-core — comment on commit d62ad40fda8cf9c5eadd7fbe39317383c6c917d6
File: hibernate-core/src/main/java/org/hibernate/action/internal/UnresolvedEntityInsertActions.java line 194
By gbadner:

It's going to be complicated to restore throwing TransientObjectException when merging with CHECK_NULLABILITY set to true. I don't think it's worth the trouble, especially since it probably shouldn't have been changed from PropertyValueException in the first place.

Instead, When CHECK_NULLABILITY is true:
1) save/persist/merge event listeners will throw PropertyValueException;

When CHECK_NULLABILITY is false:
1) if the entity insert action is executed before the session is flushed (i.e., an "early" insert to generate an identity ID), then JDBCException is thrown;
2) otherwise, TransientObjectException is thrown when the owning entity is dirty-checked.