Hello,
can somebody explain , what the philosophy of following behaviour is?
1. Open a session s1, load an entity e
2. Open a 2nd session, update e, commit transaction
3. Query in s1 find entity e with old values?? Only refresh updates values. 
This is only for updates, creates and deletes are immediatly visible in session 1 at step 3.
EDIT: Strange for me is that the query in step 3 send a select to database. Updates values are there (coz of commit) but entity values in session 1 are not updated.
SampleCode: Assertion Failed:
Code:
      // Create Object in session 1
      Session createObjectSession = sessionFactory.openSession();
      createObjectSession.beginTransaction();
      
      Event originalEvent = new Event("Our very first event!", new Date());
      
      createObjectSession.save( originalEvent );
      
      Long id = originalEvent.getId();
      
      createObjectSession.getTransaction().commit();
      
      //Update object in session2  
      
      Session updateObjectSession = sessionFactory.openSession();
      
      updateObjectSession.beginTransaction();
      
      Event updatedEvent = (Event)updateObjectSession.load(Event.class, id);
      
      updatedEvent.setTitle("Our very first event! Changed!!!");
      
      updateObjectSession.saveOrUpdate(updatedEvent);
      
      updateObjectSession.getTransaction().commit();
      
      // Reread object in session 1
      
      createObjectSession.beginTransaction();
      
      Event refreshedEvent=(Event)createObjectSession.createQuery("from Event").uniqueResult();
      
      String titleRefreshedFromOriginal = refreshedEvent.getTitle();
      String titleUpdate = updatedEvent.getTitle();
      
      createObjectSession.getTransaction().commit();
      
      logger.info(titleRefreshedFromOriginal+"/"+titleUpdate);
      
      
      // Compare
      
      
      assertEquals(titleRefreshedFromOriginal,titleUpdate);
      
      createObjectSession.close();
      
      updateObjectSession.close();