0 Replies Latest reply on Feb 27, 2006 9:46 AM by christophe spada

    Why do i have to em.flush() here ?

    christophe spada Newbie

      hi

      in this part of code :

      ...
      FleetUser fu = (FleetUser) QueryUtils.getNamedQuerySingleResult(em,
      "FleetUser.findFleetUserForFleet.indexed", fleet);
      em.remove(fu);
      em.flush(); // HAVE TO FLUSH HERE
      FleetUser newFu = new FleetUser(fleet, user);
      fleet.setIsManaged(true);
      em.persist(newFu);
      ...
      ...

      If i remove the em.flush() call, when ending the transaction, an insert is done before the delete and fails cause of an unique contraint on a FLEET_ID column (to simulate one-to-many relation with association table).
      Why is the delete delayed after the insert or not done at all ?

      Christophe.