Example #1
0
  @Override
  public ArrayList<User> getAllUsers() throws Exception {
    dLog.info("Entering method getAllUsers");
    ArrayList<User> result = new ArrayList<User>();
    Session session = null;

    try {
      session = getSession();
      session.clear();
      Transaction tranx = session.beginTransaction();

      String hql = "select from User";
      Query query = session.createQuery(hql);
      List<?> list = query.list();

      for (int n = 0; n < list.size(); n++) {
        result.add((User) list.get(n));
      }

      tranx.commit();
      session.flush();
      session.evict(User.class);
    } catch (Exception e) {
      dLog.error("Exception in getAllUsers", e);
    } finally {
      // ensure that session is close regardless of the errors in try/catch
      if (session != null) {
        session.close();
      }
    }

    return result;
  }
  @Override
  public void getPortalEvents(
      DateTime startTime,
      DateTime endTime,
      int maxEvents,
      FunctionWithoutResult<PortalEvent> handler) {
    final Session session = this.getEntityManager().unwrap(Session.class);
    final org.hibernate.Query query = session.createQuery(this.selectQuery);
    query.setParameter(this.startTimeParameter.getName(), startTime);
    query.setParameter(this.endTimeParameter.getName(), endTime);
    if (maxEvents > 0) {
      query.setMaxResults(maxEvents);
    }

    for (final ScrollableResults results = query.scroll(ScrollMode.FORWARD_ONLY);
        results.next(); ) {
      final PersistentPortalEvent persistentPortalEvent = (PersistentPortalEvent) results.get(0);
      final PortalEvent portalEvent =
          this.toPortalEvent(
              persistentPortalEvent.getEventData(), persistentPortalEvent.getEventType());
      handler.apply(portalEvent);
      persistentPortalEvent.setAggregated(true);
      session.evict(persistentPortalEvent);
    }
  }
  @Test
  public void testLoadBoardImpl() throws BoardLoadingException {
    final ScribbleSettings settings = new ScribbleSettings("Mock", Language.EN, 3);

    final Dictionary dictionary = createNiceMock(Dictionary.class);
    final TilesBank tilesBank =
        new TilesBank(new TilesBankInfoEditor(Language.EN).createTilesBankInfo());

    final ScribbleBoard board = createStrictMock(ScribbleBoard.class);
    expect(board.getSettings()).andReturn(settings);
    expect(board.getPlayersCount()).andReturn(3);
    board.initGameAfterLoading(tilesBank, dictionary, personalityManager);
    replay(board);

    expect(session.get(ScribbleBoard.class, 1L)).andReturn(board);
    session.evict(board);
    replay(session);

    expect(dictionaryManager.getDictionary(Language.EN)).andReturn(dictionary);
    replay(dictionaryManager);

    expect(tilesBankingHouse.createTilesBank(Language.EN, 3, true)).andReturn(tilesBank);
    replay(tilesBankingHouse);

    final ScribbleBoard board1 = scribblePlayManager.loadBoardImpl(1L);
    assertSame(board, board1);

    verify(board);
    verify(session);
    verify(dictionaryManager);
    verify(tilesBankingHouse);
  }
Example #4
0
  public void insertDetail(OrdDetailBean detailBean) {
    session.save(detailBean);

    session.evict(detailBean);

    System.out.println(detailBean);
  }
  @Test
  @SuppressWarnings({"unchecked"})
  public void testIterateWithEvictBottomOfLoop() {
    Session s = openSession();
    s.beginTransaction();
    Set parents = new HashSet();
    for (int i = 0; i < 5; i++) {
      Parent p = new Parent(String.valueOf(i + 100));
      Child child = new Child("child" + i);
      child.setParent(p);
      p.getChildren().add(child);
      s.save(p);
      parents.add(p);
    }
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    for (Iterator it = s.createQuery("from Parent").iterate(); it.hasNext(); ) {
      Parent p = (Parent) it.next();
      assertEquals(1, p.getChildren().size());
      s.evict(p);
    }
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    for (Object parent : parents) {
      s.delete(parent);
    }
    s.getTransaction().commit();
    s.close();
  }
  @Test
  public void testUpdateAfterEvict() {
    Session s = openSession();
    s.beginTransaction();
    Parent p = new Parent("p");
    s.save(p);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    p = (Parent) s.load(Parent.class, "p");
    // evict...
    s.evict(p);
    // now try to reattach...
    s.update(p);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    s.delete(p);
    s.getTransaction().commit();
    s.close();
  }
  @SuppressWarnings("unchecked")
  @Override
  protected void handle(TitoRequest req, Session hs, TemplateRenderer tr, ViewResponse resp)
      throws ErrorResponseException {
    User user = req.getUserSession().consumeAttribute("regUser", User.class);
    if (user == null) user = new User();

    tr.put("theUser", user); // Use "theUser" instead of "user" to avoid name clash
    tr.put("availableLocales", req.getContext().getTitoTranslation().getSupportedLocales());

    final Locale locale = this.getTranslator(req).getLocale();
    List<Course> courses = hs.createQuery("FROM Course WHERE hidden = FALSE").list();
    hs.evict(courses);
    Collections.sort(
        courses,
        new Comparator<Course>() {
          @Override
          public int compare(Course o1, Course o2) {
            String s1 = ObjectUtils.toString(o1.getName(locale), "");
            String s2 = ObjectUtils.toString(o2.getName(locale), "");
            return s1.compareTo(s2);
          }
        });

    tr.put("availableCourses", courses);

    tr.put("invFields", req.getUserSession().consumeAttribute("invFields", Collection.class));
  }
  public void testUpdateOwnerAfterEvict() {
    Session s = openSession();
    s.beginTransaction();
    Parent p = new Parent("p");
    p.getChildren().add(new Child("c"));
    s.save(p);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    p = (Parent) s.get(Parent.class, "p");
    // evict...
    s.evict(p);
    // now try to reattach...
    s.update(p);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    s.delete(p);
    s.getTransaction().commit();
    s.close();
  }
Example #9
0
  public void delete(Countries countries) {

    Transaction transaction = session.beginTransaction();
    transaction.begin();
    session.evict(countries);
    session.delete(countries);
    transaction.commit();
  }
  @Test
  public void create() {
    final PublicMessage pm = getPublicMessage(1).get(0);
    publicMessageDao.save(pm);
    session.evict(pm);

    assertEquals(session.get(PublicMessage.class, pm.getId()), pm);
  }
  @Test
  public void deleteByObject() {
    final PublicMessage pm = getPublicMessage(1).get(0);
    session.save(pm);
    session.evict(pm);

    publicMessageDao.delete(pm);
    assertNull(session.get(PublicMessage.class, pm.getId()));
  }
  @Test
  public void testEntity() {
    final HazelcastInstance hz = getHazelcastInstance(sf);
    assertNotNull(hz);
    final int count = 100;
    final int childCount = 3;
    insertDummyEntities(count, childCount);
    List<DummyEntity> list = new ArrayList<DummyEntity>(count);
    Session session = sf.openSession();
    try {
      for (int i = 0; i < count; i++) {
        DummyEntity e = (DummyEntity) session.get(DummyEntity.class, (long) i);
        session.evict(e);
        list.add(e);
      }
    } finally {
      session.close();
    }
    session = sf.openSession();
    Transaction tx = session.beginTransaction();
    try {
      for (DummyEntity dummy : list) {
        dummy.setDate(new Date());
        session.update(dummy);
      }
      tx.commit();
    } catch (Exception e) {
      tx.rollback();
      e.printStackTrace();
    } finally {
      session.close();
    }

    Statistics stats = sf.getStatistics();
    Map<?, ?> cache = hz.getMap(DummyEntity.class.getName());
    Map<?, ?> propCache = hz.getMap(DummyProperty.class.getName());
    Map<?, ?> propCollCache = hz.getMap(DummyEntity.class.getName() + ".properties");
    assertEquals((childCount + 1) * count, stats.getEntityInsertCount());
    // twice put of entity and properties (on load and update) and once put of collection
    // TODO: fix next assertion ->
    //        assertEquals((childCount + 1) * count * 2, stats.getSecondLevelCachePutCount());
    assertEquals(childCount * count, stats.getEntityLoadCount());
    assertEquals(count, stats.getSecondLevelCacheHitCount());
    // collection cache miss
    assertEquals(count, stats.getSecondLevelCacheMissCount());
    assertEquals(count, cache.size());
    assertEquals(count * childCount, propCache.size());
    assertEquals(count, propCollCache.size());
    sf.getCache().evictEntityRegion(DummyEntity.class);
    sf.getCache().evictEntityRegion(DummyProperty.class);
    assertEquals(0, cache.size());
    assertEquals(0, propCache.size());
    stats.logSummary();
  }
Example #13
0
 @Test
 public void testClear() {
   Session session = sf.openSession();
   Transaction tx = session.beginTransaction();
   User user = null;
   user = (User) session.get(User.class, 2);
   // session.clear();//清空所有,会使user指向的对象变为游离状态
   session.evict(user); // 清除指定对象,会使user指向的对象变为游离状态
   user = (User) session.get(User.class, 2); // 会再次执行一次查询语句
   tx.commit(); // 该方法会调用flush
   session.close();
 }
 protected ArrayList<DummyEntity> getDummyEntities(SessionFactory sf, long untilId) {
   Session session = sf.openSession();
   ArrayList<DummyEntity> entities = new ArrayList<DummyEntity>();
   for (long i = 0; i < untilId; i++) {
     DummyEntity entity = (DummyEntity) session.get(DummyEntity.class, i);
     if (entity != null) {
       session.evict(entity);
       entities.add(entity);
     }
   }
   session.close();
   return entities;
 }
Example #15
0
	@SuppressWarnings("unchecked")
	public static void main(String[] args){
		Session session = Hibernate.currentSession();//Open a session which is created by the SessionFactory
		Transaction tx = session.beginTransaction();//transaction starts
		User user = new User("Tommy", 50);//transient status
		session.save(user);//insertion
		tx.commit();//transaction ends
		session.evict(user);
		String hql = "from User";//select * from User
		Query query = session.createQuery(hql);
		System.out.println(************************);
		List<User> list = query.list();//it returns a list of objects
		for(User u:list){
			System.out.println(u);
			System.out.println("user==u?" + (user==u));
		}
		Hibernate,closeSession();//After manipulation, it needs to close
	}
  @Test
  public void testSaveBoardImpl() {
    final ScribbleBoard board = createNiceMock(ScribbleBoard.class);

    session.saveOrUpdate(board);
    session.flush();
    session.evict(board);
    replay(session);

    replay(dictionaryManager);
    replay(tilesBankingHouse);

    scribblePlayManager.saveBoardImpl(board);

    verify(session);
    verify(dictionaryManager);
    verify(tilesBankingHouse);
  }
 protected void executeUpdateQuery(SessionFactory sf, String queryString) throws RuntimeException {
   Session session = null;
   Transaction txn = null;
   try {
     session = sf.openSession();
     txn = session.beginTransaction();
     Query query = session.createQuery(queryString);
     query.setCacheable(true);
     session.evict(query);
     query.executeUpdate();
     txn.commit();
   } catch (RuntimeException e) {
     txn.rollback();
     e.printStackTrace();
     throw e;
   } finally {
     session.close();
   }
 }
Example #18
0
  @Test
  public void save() {
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();

    User user = new User();
    session.save(user);
    session.flush();
    session.evict(user);

    user = (User) session.get(User.class, user.getId());

    System.out.println(user.getTs());
    System.out.println(user.getTs2());
    System.out.println(user.getCal());

    tx.commit();
    session.close();
  }
  @Test
  @SuppressWarnings({"UnusedAssignment"})
  public void testEvictThenSaveOrUpdate() throws Exception {
    TestingJtaBootstrap.INSTANCE.getTransactionManager().begin();
    Session s = openSession();
    Node parent = new Node("1:parent");
    Node child = new Node("2:child");
    Node grandchild = new Node("3:grandchild");
    parent.addChild(child);
    child.addChild(grandchild);
    s.saveOrUpdate(parent);
    s = applyNonFlushedChangesToNewSessionCloseOldSession(s);
    TestingJtaBootstrap.INSTANCE.getTransactionManager().commit();

    TestingJtaBootstrap.INSTANCE.getTransactionManager().begin();
    Session s1 = openSession();
    child = (Node) s1.load(Node.class, "2:child");
    s1 = applyNonFlushedChangesToNewSessionCloseOldSession(s1);
    child = (Node) getOldToNewEntityRefMap().get(child);
    assertTrue(s1.contains(child));
    assertFalse(Hibernate.isInitialized(child));
    assertTrue(s1.contains(child.getParent()));
    assertTrue(Hibernate.isInitialized(child));
    assertFalse(Hibernate.isInitialized(child.getChildren()));
    assertFalse(Hibernate.isInitialized(child.getParent()));
    assertTrue(s1.contains(child));
    s1 = applyNonFlushedChangesToNewSessionCloseOldSession(s1);
    // child is an initialized proxy; after serialization, it is
    // the proxy is replaced by its implementation
    // TODO: find out if this is how this should work...
    child =
        (Node)
            getOldToNewEntityRefMap()
                .get(((HibernateProxy) child).getHibernateLazyInitializer().getImplementation());
    s1.evict(child);
    assertFalse(s1.contains(child));
    assertTrue(s1.contains(child.getParent()));

    javax.transaction.Transaction tx1 =
        TestingJtaBootstrap.INSTANCE.getTransactionManager().suspend();

    TestingJtaBootstrap.INSTANCE.getTransactionManager().begin();
    Session s2 = openSession();
    try {
      s2.getTransaction().begin();
      s2.saveOrUpdate(child);
      fail();
    } catch (HibernateException ex) {
      // expected because parent is connected to s1
    } finally {
      TestingJtaBootstrap.INSTANCE.getTransactionManager().rollback();
    }

    s1.evict(child.getParent());
    assertFalse(s1.contains(child.getParent()));

    TestingJtaBootstrap.INSTANCE.getTransactionManager().begin();
    s2 = openSession();
    s2.saveOrUpdate(child);
    s2 = applyNonFlushedChangesToNewSessionCloseOldSession(s2);
    child = (Node) getOldToNewEntityRefMap().get(child);
    assertTrue(s2.contains(child));
    assertFalse(s1.contains(child));
    assertTrue(s2.contains(child.getParent()));
    assertFalse(s1.contains(child.getParent()));
    assertFalse(Hibernate.isInitialized(child.getChildren()));
    assertFalse(Hibernate.isInitialized(child.getParent()));
    assertEquals(1, child.getChildren().size());
    assertEquals("1:parent", child.getParent().getName());
    assertTrue(Hibernate.isInitialized(child.getChildren()));
    assertFalse(Hibernate.isInitialized(child.getParent()));
    assertNull(child.getParent().getDescription());
    assertTrue(Hibernate.isInitialized(child.getParent()));
    s1 = applyNonFlushedChangesToNewSessionCloseOldSession(s1);
    s2 = applyNonFlushedChangesToNewSessionCloseOldSession(s2);
    TestingJtaBootstrap.INSTANCE.getTransactionManager().commit();

    TestingJtaBootstrap.INSTANCE.getTransactionManager().resume(tx1);
    TestingJtaBootstrap.INSTANCE.getTransactionManager().commit();
    //		tx1.commit();

    TestingJtaBootstrap.INSTANCE.getTransactionManager().begin();
    s = openSession();
    s.delete(s.get(Node.class, "3:grandchild"));
    s.delete(s.get(Node.class, "2:child"));
    s.delete(s.get(Node.class, "1:parent"));
    TestingJtaBootstrap.INSTANCE.getTransactionManager().commit();
  }
Example #20
0
 public void evict(Object object) throws HibernateException {
   session.evict(object);
 }