Optimistic Locking fails when field is null
jeeads Aug 18, 2003 1:31 PMI am using optimistic locking with the modified strategy. When I try to update a field that contains a null value I get the following error:
2003-08-18 14:13:28,703 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackException, causedBy:
javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=Primary key: 731
If I try to update the same field when it does not contain a null value the update works fine. I can set the field to another non-null value or to null with no problems.
Jboss.xml:
<ejb-name>Project</ejb-name>
<local-jndi-name>Project</local-jndi-name>
<configuration-name>Optimistic Container</configuration-name>
...
<container-configurations>
<!-- Extends Per Transaction for the purpose of Optimistic Locking JE 8/18/2003-->
<container-configuration
extends="Instance Per Transaction CMP 2.x EntityBean">
<container-name>Optimistic Container</container-name>
<!-- overrides: org.jboss.ejb.plugins.lock.NoLock -->
<locking-policy>org.jboss.ejb.plugins.lock.JDBCOptimisticLock</locking-policy>
</container-configuration>
</container-configurations>
jbosscmp-jdbc.xml:
<jbosscmp-jdbc>
<!--datasource>java:/DefaultDS
<datasource-mapping>Hypersonic SQL</datasource-mapping>
<create-table>true</create-table>
<remove-table>true</remove-table>
<pk-constraint>true</pk-constraint>
<preferred-relation-mapping>foreign-key</preferred-relation-mapping-->
<enterprise-beans>
<ejb-name>Project</ejb-name>
<table-name>Project</table-name>
<ejb.invalidateFinderCollectionAtCommit>false</ejb.invalidateFinderCollectionAtCommit>
<ejb.maxBeansInCache>1000</ejb.maxBeansInCache>
<ejb.cacheCreate>true</ejb.cacheCreate>
<ejb.maxBeansInPool>1000</ejb.maxBeansInPool>
<ejb.transactionCommitMode>Shared</ejb.transactionCommitMode>
<cmp-field>
<field-name>id</field-name>
<column-name>ID</column-name>
</cmp-field>
<cmp-field>
<field-name>priority</field-name>
<column-name>Priority</column-name>
</cmp-field>
<cmp-field>
<field-name>status</field-name>
<column-name>Status</column-name>
</cmp-field>
<cmp-field>
<field-name>assignedTo</field-name>
<column-name>AssignedTo</column-name>
</cmp-field>
<optimistic-locking>
<modified-strategy/>
</optimistic-locking>
Has anyone else run into this problem? Any help will be greatly appreciated.
Thanks
Jerry