[ https://issues.apache.org/jira/browse/ISIS-2706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Keir Haywood updated ISIS-2706: -------------------------------------- Description: For example, secman's ApplicationTenancy cannot be persisted as currently implemented. Reason (perhaps): there is logic in ManagedObjects.EntityUtil.getState() to infer the entity state of the object, and for such entities it returns the state as PERSISTABLE_DESTROYED rather than DETACHED, meaning that flush transaction is never called. To reproduce, simply attempt to create a new ApplicationTenancy. HERE'S THE CODE THAT SHOWS the entity is not reported as detached,so the transaction never flushed: !image-2021-05-28-06-20-20-489.png|width=783,height=627! THE FIX MIGHT BE TO SIMPLY REMOVE THE HIGHLIGHTED, WHICH PERHAPS IS A PERFORMANCE OPTIMISATION? (or, it is only safe to do if the @Id also has @GeneratedValue, which application-defined primary keys do not, of course. !image-2021-05-28-06-31-55-731.png|width=645,height=374! was: For example, secman's ApplicationTenancy cannot be persisted as currently implemented. Reason (perhaps): there is logic in ManagedObjects.EntityUtil.getState() to infer the entity state of the object, and for such entities it returns the state as PERSISTABLE_DESTROYED rather than DETACHED, meaning that flush transaction is never called. To reproduce, simply attempt to create a new ApplicationTenancy. !image-2021-05-28-06-20-20-489.png|width=783,height=627! > JPA does not persist entities with application-defined primary keys > ------------------------------------------------------------------- > > Key: ISIS-2706 > URL: https://issues.apache.org/jira/browse/ISIS-2706 > Project: Isis > Issue Type: Bug > Components: Isis Persistence JPA > Affects Versions: 2.0.0-M5 > Reporter: Daniel Keir Haywood > Priority: Major > Fix For: 2.0.0-M6 > > Attachments: image-2021-05-28-06-20-20-489.png, > image-2021-05-28-06-31-55-731.png > > > For example, secman's ApplicationTenancy cannot be persisted as currently > implemented. > Reason (perhaps): there is logic in ManagedObjects.EntityUtil.getState() to > infer the entity state of the object, and for such entities it returns the > state as PERSISTABLE_DESTROYED rather than DETACHED, meaning that flush > transaction is never called. > To reproduce, simply attempt to create a new ApplicationTenancy. > > HERE'S THE CODE THAT SHOWS the entity is not reported as detached,so the > transaction never flushed: > !image-2021-05-28-06-20-20-489.png|width=783,height=627! > > THE FIX MIGHT BE TO SIMPLY REMOVE THE HIGHLIGHTED, WHICH PERHAPS IS A > PERFORMANCE OPTIMISATION? (or, it is only safe to do if the @Id also has > @GeneratedValue, which application-defined primary keys do not, of course. > > !image-2021-05-28-06-31-55-731.png|width=645,height=374! > > -- This message was sent by Atlassian Jira (v8.3.4#803005)