Hi.
On Thu, Jul 19, 2012 at 2:56 PM, José Luis Cetina <[email protected]>wrote:
> Hi im triying to handle a constraint violation but i dont know how..
>
> In my EJB i have this:
>
> try {
> UserTransaction userTransaction =
> ejbContext.getUserTransaction();
> userTransaction.begin();
> em.remove(anyObject);
> userTransaction.commit();
> }
> catch(Exception ex){
> //WHAT DO I HAVE TO DO HERE, FOR HANDLE THE CONSTRAINT VIOLATION???
> }
>
> The exception class is: javax.transaction.RollbackException
>
> [skipped]
>
>
> I know this exception is because im triying to delete a child before
> delete his parent, what i want is to check if my object has a
> reference in other table (i dont want to use a SELECT for each table)
> that's why i want to handle a constraint violation (can be only the:
> Cannot delete or update a parent row: a foreign key constraint fails.)
> how can i do this?
>
You should do the select. The database will effectively do a select anyway,
to do the constraint check, you are not introducing much overhead.
There are certain databases, and certain drivers, that will not tolerate
any data exception inside a transaction, and will mark the whole
transaction as "roll back only" should any data exception occur.
[skipped]
> Im using JTA and OpenJPA 2.2.0
>
> Thanks.
>
>