We're updating the issue view to help you get more done. 

EntityManager.flush() does not behave properly with transient one-to-one association and no cascade

Description

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 was fixed, IllegalStateException is no longer thrown when Y is new.

Environment

None

Status

Assignee

Gail Badner

Reporter

Gail Badner

Labels

None

Worked in

None

Feedback Requested

None

Feedback Requested By

None

backPortable

None

Community Help Wanted

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

backportReEvaluate

None

Components

Fix versions

Affects versions

4.2.17
4.3.8

Priority

Major