0 Replies Latest reply on Sep 1, 2006 5:15 AM by .. ...

    Merge a removed entity bean

    .. ... Newbie


      I've a problem concerning merge entity bean (EJB3).
      I use a session bean stateless with transactions that is able to create, update and remove an entity bean.
      I've created a java client application that uses my session bean.

      public void save(Object obj){
      public void removeAccessControl(Object obj) throws SecurityException{
       AccessControl access=null;
       //Remove dependecies

      I run two instances of my client to simulate two users actions. The first one tries to remove the the entity #1 and the second client tries to rename same data row(#1).The Remove action is run just before the update.
      The remove action deletes my bean in my database. But I was expecting that my update will fail (I use me.merge(obj)). NO! The row is added with a new ID: #2.
      All entity object passed in parameters in my methods are detached.

      Is that behavior normal? Is it possible, in my case, to make the entity manager automatically crache when I try to merge an entity which has been deleted by another thread without making a database check in my code ?

      I tried the following code in my session bean :
      public void test(){

      Here an exception is thrown that informs me that entity manager cannot merge a deleted entity. I would like to have the same behavior between 2 different transactions and 2 different threads...

      Thank fo all help answers.