According to JPA 2.1, section 3.2.4 (Synchronization to the Database)
"The semantics of the flush operation, applied to an entity X are as follows: ... • For any entity Y referenced by a relationship from X, where the relationship to Y has not been annotated with the cascade element value cascade=PERSIST or cascade=ALL • If Y is new or removed, an IllegalStateException will be thrown by the flush operation (and the transaction marked for rollback) or the transaction commit will fail."
Prior to fixing
HHH-9330
, EntityManager operated properly when the relationship to Y is one-to-one. After
HHH-9330
was fixed, IllegalStateException is no longer thrown when Y is new.
|