On Wed, Sep 30, 2009 at 5:23 AM, ajay labade <ajaylab...@gmail.com> wrote:
>>     I am trying to port my application from Oracle to PostGREs. I have a
>> problem while doing so. In my application i need to update record if the
>> delete on the respective record is failed due to Constraint Violation. But
>> SQL Error: 0, SQLState: 25P02 ERROR [JDBCExceptionReporter] ERROR: current
>> transaction is aborted, commands ignored until end of transaction block is
>> being generated while updating the record. But with Oracle i am able to do
>> this.
>>
>> I have tried with latest Jar [postgresql-8.3-604.jdbc3.jar] too, but
>> problem still exists.
>>
>> Here is the code that i worked on:
>>
>> try{
>>     session = sessionManager.getSession();
>>     transaction = session.beginTransaction();
>>     session.delete(objects[i]);
>>     session.flush();
>> }catch(ConstraintViolationException e){
>>     objects[i].setDeleted(Integer.valueOf(1));
>>     session.saveOrUpdate(object[i]);
>>     session.flush();
>> }
>> transaction.commit();
>> sessionManager.closeSession(session);

This is not a bug.

When an exception occurs in PostgreSQL, any further commands are
ignored until the transaction is rolled back.  In this case, you seem
to be catching a ConstraintViolationException and then attempting to
performing further database actions, which is bound to fail.

You may want to ROLLBACK within your exception handler and then BEGIN again.

...Robert

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to