cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Huss <johnth...@gmail.com>
Subject Re: How to execute a stored procedure as part of a commitChanges?
Date Mon, 11 Apr 2016 16:04:31 GMT
Try calling context.rollbackChanges() or just create a new context and
start over.

On Mon, Apr 11, 2016 at 10:31 AM Juan Manuel Diaz Lara
<jmdiazlr@yahoo.com.invalid> wrote:

>
>
> I am using 4.0.M3.
> I used the following solution, but the problem is that after
> commitChanges() the dataobjetcs are set to PersistenceState.COMMITED, if
> the stored procedure fails Cayenne does a DB rollback (that's ok), but
> dataobjects stay COMMITED, so I can not retry the this transaction after
> errors are solved.
> Is there any way to revert the persistenceState to their values before
> commitChanges if I detect the stored procedure failed ?
>
>             cayenneRuntime.performInTransaction(new
> TransactionalOperation<Integer>()
>                     {
>
>                         @Override
>                         public Integer perform() {
>                             context.commitChanges();
>                             //...
>                             SQLTemplate s = new SQLTemplate("SELECT
> pkg_inventario_fisico.apply( #bind($idAlmacen, 'VARCHAR')) AS id", true);
>                             s.setParamsArray(a);
>                             @SuppressWarnings("unchecked")
>                             List<DataRow> rows =
> CayenneDao.instance.context.performQuery(s);
>                             DataRow row = rows.get(0);
>                             //...
>                             return null;
>                         }
>
>                     }
>             );
>  Atte. Juan Manuel Díaz Lara
>
>     On Monday, April 11, 2016 10:06 AM, Mike Kienenberger <
> mkienenb@gmail.com> wrote:
>
>
>  See the bottom part of this page starting at "In the second scenario":
>
>
> https://cayenne.apache.org/docs/4.0/cayenne-guide/persistent-objects-objectcontext.html#transactions
>
>
> On Mon, Apr 11, 2016 at 10:54 AM, Juan Manuel Diaz Lara
> <jmdiazlr@yahoo.com.invalid> wrote:
> >
> >
> >  I have a dataobjet graph with some changes, and a db stored procedure
> that should run after this changes are in the db, but must run in the same
> transaction because it make some more changes to other data, this changes
> can fail so I want the commitChanges fail if the stored procedure fails.
> >  Atte. Juan Manuel Díaz Lara
> >
> >
> >
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message