Hi, Stuart,

   The error message "Cannot perform an update or delete operation on select 
query: "Update FPA2.NW_OR_004_14702765 Set Cost=? Where PT_GRID_ID=?"." 
suggests that openjpa thinks your native query is a select statement. The call 
to executeUpdate therefore can not be performed on a select statement. 

    There are a couple of reasons why openjpa thinks your query is a select 
statement. The following is an example (note the result class, BasicA.class, is 
an input paramter to the createNativeQuery api). An executeUpdate on it results 
in the same error as you describe:

        Query q = em.createNativeQuery("UPDATE BasicA t set t.name= ? WHERE 
t.id = ?", BasicA.class);

       The query below takes out the result class and works just fine:
        Query q = em.createNativeQuery("UPDATE BasicA t set t.name= ? WHERE 
t.id = ?"); 

Regards,
Fay






--- On Tue, 10/28/08, Stuart Bedoll <[EMAIL PROTECTED]> wrote:
From: Stuart Bedoll <[EMAIL PROTECTED]>
Subject: Re: Native Query: Update fails with InvalidStateException
To: [email protected]
Date: Tuesday, October 28, 2008, 1:06 PM


What version of the IBM feature pack did you use. I am at:



Name                     WebSphere Application Server Version 6.1 Feature Pack 
for EJB 3.0

Version                  6.1.0.13

ID                       EJB3

Build Level              f0747.05

Build Date               11/30/07



Installed Product

Fay Wang <[EMAIL PROTECTED]>











Fay Wang <[EMAIL PROTECTED]> 
10/27/2008 10:10 AM

Please respond to

[email protected]









To

[email protected]



cc





Subject

Re: Native Query: Update fails with InvalidStateException









Hi,

   I could not reproduce this problem against DB2. Which database are you 
using? also,can you post your persistence.xml to see if there is any special 
setting?



Fay



--- On Mon, 10/27/08, sbedoll <[EMAIL PROTECTED]> wrote:



> From: sbedoll <[EMAIL PROTECTED]>

> Subject: Native Query: Update fails with InvalidStateException

> To: [email protected]

> Date: Monday, October 27, 2008, 6:37 AM

> I am using local transactions and get this error when

> executing a NativeQuery

> (query.executeUpdate)

> 

> <openjpa-1.0.1-r420667:592145 nonfatal user error>

> org.apache.openjpa.persistence.InvalidStateException:

> Cannot perform an

> update or delete operation on select query: "Update

> FPA2.NW_OR_004_14702765

> Set Cost=? Where PT_GRID_ID=?".

>                at

> org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:324)

>                at

> fpa.fw.ds.jpadataadapter.JPADataSourceAdapter.executeNativeUpdate(JPADataSourceAdapter.java:815)

> 

> I am using IBM JPA.  Is there something I am missing ?

> 

> 

> -- 

> View this message in context:

> http://n2.nabble.com/Native-Query%3A-Update-fails-with-InvalidStateException-tp1382362p1382362.html

> Sent from the OpenJPA Users mailing list archive at

> Nabble.com.





      






      

Reply via email to