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

Johannes Testori commented on OPENJPA-2614:
-------------------------------------------

We encountered the same problem in our application. After some debugging we 
found out that before the first allocation of a sequence value OpenJPA executes 
an ALTER SEQUENCE-statement. Since this is a DDL statement, some databases 
(e.g. Oracle) issue an implicit commit, so no matter if you commit or rollback 
afterwards, all changes that have been flushed before ALTER SEQEUENCE will be 
committed in the database. So this problem can not only arise at the first 
rollback, but at the first use of every single sequence that is defined in an 
entity.

A possible solution could be the use of an independent transaction for the 
ALTER SEQUENCE-statement.

> First rollback after application start does not work under certain 
> circumstances
> --------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2614
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2614
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 2.4.0
>            Reporter: Tim Gödde
>            Priority: Major
>         Attachments: jpa-test.zip
>
>
> Rollback is not complete under the following circumstances:
> 1. Entites must use a sequence generator with GenerationType.SEQUENCE
> 2. It is the first rollback after application start
> 3. You have to flush successfully during the creation of entities
> 4. The transaction is rolled back during commit because of a constraint 
> violation
> Expected result: Nothing remains in the database that is created during the 
> transaction
> Actual result: Entites created before the flush are persisted (i.e. not 
> rolled back)
> An example project is attached. It shows the described problem when executing 
> the test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to