[ https://issues.apache.org/jira/browse/OPENJPA-2335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Struberg reopened OPENJPA-2335: ------------------------------------ Assignee: Pinaki Poddar The change seems broken, it makes a few of my apps blow up. I do not really get the whole change. The bug description doesn't tell me why this change got done and there is also no unit test for this change to tell me what you did like to fix. I can give you my use case which is now broken Car -> n Inspections with @OrderColumn(name = "POSITION") Car c = new Car(); Inspection i1 = new Inspection(1, c); //Inspection adds itself to car.inspections Inspection i2 = new Inspection(2, c); em.persist(c). This currently blurps out with Caused by: <openjpa-2.3.0-r422266:1538090M fatal user error> org.apache.openjpa.persistence.InvalidStateException: Attempt to set column "Inspection.POSITION" to two different values: (class java.lang.Integer)"1", (class java.lang.Integer)"0" This can occur when you fail to set both sides of a two-sided relation between objects, or when you map different fields to the same column, but you do not keep the values of these fields in synch. at org.apache.openjpa.jdbc.sql.PrimaryRow.setObject(PrimaryRow.java:344) at org.apache.openjpa.jdbc.sql.RowImpl.setInt(RowImpl.java:442) at org.apache.openjpa.jdbc.meta.strats.PrimitiveFieldStrategy.update(PrimitiveFieldStrategy.java:164) at org.apache.openjpa.jdbc.meta.strats.PrimitiveFieldStrategy.insert(PrimitiveFieldStrategy.java:124) at org.apache.openjpa.jdbc.meta.FieldMapping.insert(FieldMapping.java:623) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.insert(AbstractUpdateManager.java:238) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:165) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:96) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:77) It seems that the @OrderColumn is the issue in this case. Your change looks fine for primary keys, but OrderColumns and all other stuff which gets auto-managed by OpenJPA also use the same code. Maybe we should only do these checks in case of real primary or foreign keys? > Constrained foreign key column value setting needs to be flexible > ------------------------------------------------------------------ > > Key: OPENJPA-2335 > URL: https://issues.apache.org/jira/browse/OPENJPA-2335 > Project: OpenJPA > Issue Type: Bug > Reporter: Pinaki Poddar > Assignee: Pinaki Poddar > Fix For: 2.3.0 > > > Should allow setting a column from default value to a non-default value. The > logic had a bug. -- This message was sent by Atlassian JIRA (v6.1#6144)