You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "garpinc (JIRA)" <ji...@apache.org> on 2012/09/20 21:21:09 UTC

[jira] [Comment Edited] (OPENJPA-2263) Update statements should not update the primary key of database unless the primary key has in fact changed

    [ https://issues.apache.org/jira/browse/OPENJPA-2263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13459865#comment-13459865 ] 

garpinc edited comment on OPENJPA-2263 at 9/21/12 6:20 AM:
-----------------------------------------------------------

To address temporarily I added the following lines to RowImpl. I think that perhaps this should be done at another level and at a minimum there should be a DBDictionary option to turn on or off this functionality instead of the hardcoded "Teradata". Also an improvement would be that Dictionary always has a final chance to modify the final statement.


/* new lines on line 735 of RowImpl.java */
            if (_cols[i].isPrimaryKey() && dict.platform.equals("Teradata")) {
                _vals[i] = null;
            }
/* end of new lines */

            if (_vals[i] == null)
                continue;
                
      was (Author: garpinc):
    To address temporarily I added the following lines to RowImpl. I think that perhaps this should be done at another level and at a minimum there should be a DBDictionary option to turn on or off this functionality instead of the hardcoded "Teradata". Also an improvement would be that Dictionary always has a final change to modify the final statement.


/* new lines on line 735 of RowImpl.java */
            if (_cols[i].isPrimaryKey() && dict.platform.equals("Teradata")) {
                _vals[i] = null;
            }
/* end of new lines */

            if (_vals[i] == null)
                continue;
                  
> Update statements should not update the primary key of database unless the primary key has in fact changed
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2263
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2263
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.2.0
>            Reporter: garpinc
>
> I have encountered a situation while creating an openjpa dictionary for teradata. It seems teradata does not like it when the primary key is updated. 
> i.e: update tablex set pk=1 where pk=1;
> Following the code it seems RowImpl.java contains a method getUpdateSQL which uses the dictionary to various things but it doesn't allow the dictionary to change the statement itself. 
> The specific functionality I need here is to only update the pk if the pk has changed or maybe an option not to update the pk at all.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira