Java Code Examples for org.hibernate.SessionFactory#getCurrentSession()

The following examples show how to use org.hibernate.SessionFactory#getCurrentSession() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HibernateHelper.java    From snakerflow with Apache License 2.0 6 votes vote down vote up
public static Session getSession(SessionFactory sf) {
	Session session = (Session)TransactionObjectHolder.get();
	if(session == null) {
		/*
		 * 此处的执行路径一般是ioc容器提前注入了sessionFactory,所以直接从当前线程中获取session
		 * 否则openSession需要手动提交事务
		 */
		if(sf != null) return sf.getCurrentSession();
		if(log.isDebugEnabled()) {
			log.debug("could not found sessionFactory.");
		}
		return getSessionFactory().openSession();
	} else {
		if(log.isDebugEnabled()) {
			log.debug("found thread-bound session=" + session.hashCode());
		}
		return session;
	}
}
 
Example 2
Source File: HibernateAnnotationMain.java    From journaldev with MIT License 6 votes vote down vote up
public static void main(String[] args) {
	Employee1 emp = new Employee1();
	emp.setName("David");
	emp.setRole("Developer");
	emp.setInsertTime(new Date());
	
	//Get Session
	SessionFactory sessionFactory = HibernateUtil.getSessionAnnotationFactory();
	Session session = sessionFactory.getCurrentSession();
	//start transaction
	session.beginTransaction();
	//Save the Model object
	session.save(emp);
	//Commit transaction
	session.getTransaction().commit();
	System.out.println("Employee ID="+emp.getId());
	
	//terminate session factory, otherwise program won't end
	sessionFactory.close();
}
 
Example 3
Source File: HibernateTransactionManager.java    From spring-analysis-note with MIT License 5 votes vote down vote up
@Override
protected Object doGetTransaction() {
	HibernateTransactionObject txObject = new HibernateTransactionObject();
	txObject.setSavepointAllowed(isNestedTransactionAllowed());

	SessionFactory sessionFactory = obtainSessionFactory();
	SessionHolder sessionHolder =
			(SessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
	if (sessionHolder != null) {
		if (logger.isDebugEnabled()) {
			logger.debug("Found thread-bound Session [" + sessionHolder.getSession() + "] for Hibernate transaction");
		}
		txObject.setSessionHolder(sessionHolder);
	}
	else if (this.hibernateManagedSession) {
		try {
			Session session = sessionFactory.getCurrentSession();
			if (logger.isDebugEnabled()) {
				logger.debug("Found Hibernate-managed Session [" + session + "] for Spring-managed transaction");
			}
			txObject.setExistingSession(session);
		}
		catch (HibernateException ex) {
			throw new DataAccessResourceFailureException(
					"Could not obtain Hibernate-managed Session for Spring-managed transaction", ex);
		}
	}

	if (getDataSource() != null) {
		ConnectionHolder conHolder = (ConnectionHolder)
				TransactionSynchronizationManager.getResource(getDataSource());
		txObject.setConnectionHolder(conHolder);
	}

	return txObject;
}
 
Example 4
Source File: HibernateSecondLevelCache.java    From java-course-ee with MIT License 5 votes vote down vote up
private static void checkQuery(SessionFactory sessionFactory) throws HibernateException {
    Session session = sessionFactory.getCurrentSession();
    session.beginTransaction();
    Query createQuery = session.createQuery("from Region");
    // Если не ставить кэширование, то запрос будет дважды
    // И обязательно в hibernate.cfg.xml дожно быть установлено 
    // <property name="cache.use_query_cache">true</property>
    // Если включить без кэша - то интересный эффект
    createQuery.setCacheable(true);
    List<Region> regionList1 = createQuery.list();
    for (Region r : regionList1) {
        log.info("Region: {}", r);
    }
    session.getTransaction().commit();
}
 
Example 5
Source File: AbsSupportDao.java    From jeesupport with MIT License 5 votes vote down vote up
protected Session _get_session( String _db ) {
	if ( sessionFactoryMap.containsKey( _db ) ) {
		SessionFactory sessionFactory = sessionFactoryMap.get( _db );
		if( sessionFactory.isClosed()) return sessionFactory.openSession();
		return sessionFactory.getCurrentSession();
	}

	throw new NullPointerException( "没有找到数据库[" + _db + "]的对应Session容器,请检查配置文件中是否正确。" );
}
 
Example 6
Source File: HQLCacheExample.java    From journaldev with MIT License 5 votes vote down vote up
public static void main(String[] args) {
	// Prep work
	SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
	Session session = sessionFactory.getCurrentSession();

	// Get All Employees
	Transaction tx = session.beginTransaction();

	// Get Employee with id=3
	Query query = session.createQuery("from Employee where id= 3");
	Employee emp = (Employee) query.uniqueResult();
	System.out.println("Employee Name=" + emp.getName() + ", City="
			+ emp.getAddress().getCity());

	// Get Employee with id=3
	query = session.createQuery("from Employee where id= 3");
	emp = (Employee) query.uniqueResult();
	System.out.println("Employee Name=" + emp.getName() + ", City="
			+ emp.getAddress().getCity());

	// Get Employee with id=3
	query = session.createQuery("from Employee where id= 3");
	emp = (Employee) query.uniqueResult();
	System.out.println("Employee Name=" + emp.getName() + ", City="
			+ emp.getAddress().getCity());

	// rolling back to save the test data
	tx.commit();

	// closing hibernate resources
	sessionFactory.close();

}
 
Example 7
Source File: HibernateDao.java    From DataHubSystem with GNU Affero General Public License v3.0 5 votes vote down vote up
@SuppressWarnings ("unchecked")
public List<T> listCriteria (DetachedCriteria detached, int skip, int top)
{
   SessionFactory factory = getSessionFactory ();
   org.hibernate.classic.Session session = factory.getCurrentSession ();

   Criteria criteria = detached.getExecutableCriteria (session);

   if (skip > 0)
      criteria.setFirstResult (skip);
   if (top > 0)
      criteria.setMaxResults (top);
   return criteria.list ();
}
 
Example 8
Source File: HibernateSimple.java    From java-course-ee with MIT License 5 votes vote down vote up
public static void main(String[] args) {
    HibernateSimple hs = new HibernateSimple();

    SessionFactory sf = hs.getSessionFactory();

    Session s = sf.getCurrentSession();
    s.beginTransaction();

    // Получить список через SQL-запрос
    List<Region> regionList = s.createQuery("from Region").list();
    for (Region r : regionList) {
        System.out.println(r);
    }

    // Добавить через SQL-запрос
    Region newRegion = new Region();
    newRegion.setRegionName("Simple Region");
    Serializable id = s.save(newRegion);
    // Изменить через SQL-запрос
    regionList.get(0).setRegionName("Other Region");

    s = restartSession(s, sf);

    // Загрузить через SQL-запрос
    //Region load = (Region) s.get(Region.class, id);
    Region load = (Region) s.load(Region.class, id);

    // Удалить через SQL-запрос
    s.delete(load);

    s.getTransaction().commit();
}
 
Example 9
Source File: HibernateSecondLevelCache.java    From java-course-ee with MIT License 5 votes vote down vote up
private static void checkOne(SessionFactory sessionFactory) {
    Session session = sessionFactory.getCurrentSession();
    session.beginTransaction();
    Region r = (Region) session.get(Region.class, 1L);
    log.info("Region: {}", r);
    session.getTransaction().commit();
}
 
Example 10
Source File: HibernateOneToOneMain.java    From journaldev with MIT License 5 votes vote down vote up
public static void main(String[] args) {
	
	Txn txn = buildDemoTransaction();
	
	SessionFactory sessionFactory = null;
	Session session = null;
	Transaction tx = null;
	try{
	//Get Session
	sessionFactory = HibernateUtil.getSessionFactory();
	session = sessionFactory.getCurrentSession();
	System.out.println("Session created");
	//start transaction
	tx = session.beginTransaction();
	//Save the Model object
	session.save(txn);
	//Commit transaction
	tx.commit();
	System.out.println("Transaction ID="+txn.getId());
	
	//Get Saved Trasaction Data
	printTransactionData(txn.getId(), sessionFactory);
	
	}catch(Exception e){
		System.out.println("Exception occured. "+e.getMessage());
		e.printStackTrace();
	}finally{
		if(!sessionFactory.isClosed()){
			System.out.println("Closing SessionFactory");
			sessionFactory.close();
		}
	}
}
 
Example 11
Source File: HibernateUtil.java    From AlgoTrader with GNU General Public License v2.0 5 votes vote down vote up
public static boolean lock(SessionFactory sessionFactory, Object target) {

		Session session = sessionFactory.getCurrentSession();

		try {
			session.buildLockRequest(LockOptions.NONE).lock(target);
			return true;
		} catch (NonUniqueObjectException e) {
			//  different object with the same identifier value was already associated with the session
			return false;
		}
	}
 
Example 12
Source File: HibernateCacheExample.java    From journaldev with MIT License 4 votes vote down vote up
public static void main(String[] args) throws InterruptedException {
	
	SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
	Session session = sessionFactory.getCurrentSession();
	Transaction tx = session.beginTransaction();
	
	//Get employee with id=1
	Employee emp = (Employee) session.load(Employee.class, new Long(1));
	printData(emp,1);
	
	//waiting for sometime to change the data in backend
	Thread.sleep(10000);
	
	//Fetch same data again, check logs that no query fired
	Employee emp1 = (Employee) session.load(Employee.class, new Long(1));
	printData(emp1,2);
	
	//Create new session
	Session newSession = sessionFactory.openSession();
	//Get employee with id=1, notice the logs for query
	Employee emp2 = (Employee) newSession.load(Employee.class, new Long(1));
	printData(emp2,3);
	
	//START: evict example to remove specific object from hibernate first level cache
	//Get employee with id=2, first time hence query in logs
	Employee emp3 = (Employee) session.load(Employee.class, new Long(2));
	printData(emp3,4);
	
	//evict the employee object with id=1
	session.evict(emp);
	System.out.println("Session Contains Employee with id=1?"+session.contains(emp));

	//since object is removed from first level cache, you will see query in logs
	Employee emp4 = (Employee) session.load(Employee.class, new Long(1));
	printData(emp4,5);
	
	//this object is still present, so you won't see query in logs
	Employee emp5 = (Employee) session.load(Employee.class, new Long(2));
	printData(emp5,6);
	//END: evict example
	
	//START: clear example to remove everything from first level cache
	session.clear();
	Employee emp6 = (Employee) session.load(Employee.class, new Long(1));
	printData(emp6,7);
	Employee emp7 = (Employee) session.load(Employee.class, new Long(2));
	printData(emp7,8);
	
	System.out.println("Session Contains Employee with id=2?"+session.contains(emp7));
	
	tx.commit();
	sessionFactory.close();
}
 
Example 13
Source File: HibernateSimple.java    From java-course-ee with MIT License 4 votes vote down vote up
private static Session restartSession(Session s, SessionFactory sf) throws HibernateException {
    s.getTransaction().commit();
    s = sf.getCurrentSession();
    s.beginTransaction();
    return s;
}
 
Example 14
Source File: HibernateOneToManyAnnotationMain.java    From journaldev with MIT License 4 votes vote down vote up
public static void main(String[] args) {

		Cart1 cart = new Cart1();
		cart.setName("MyCart1");
		
		Items1 item1 = new Items1("I10", 10, 1, cart);
		Items1 item2 = new Items1("I20", 20, 2, cart);
		Set<Items1> itemsSet = new HashSet<Items1>();
		itemsSet.add(item1); itemsSet.add(item2);
		
		cart.setItems1(itemsSet);
		cart.setTotal(10*1 + 20*2);
		
		SessionFactory sessionFactory = null;
		Session session = null;
		Transaction tx = null;
		try{
		//Get Session
		sessionFactory = HibernateAnnotationUtil.getSessionFactory();
		session = sessionFactory.getCurrentSession();
		System.out.println("Session created");
		//start transaction
		tx = session.beginTransaction();
		//Save the Model object
		session.save(cart);
		session.save(item1);
		session.save(item2);
		//Commit transaction
		tx.commit();
		System.out.println("Cart1 ID="+cart.getId());
		System.out.println("item1 ID="+item1.getId()+", Foreign Key Cart ID="+item1.getCart1().getId());
		System.out.println("item2 ID="+item2.getId()+", Foreign Key Cart ID="+item1.getCart1().getId());
		
		}catch(Exception e){
			System.out.println("Exception occured. "+e.getMessage());
			e.printStackTrace();
		}finally{
			if(!sessionFactory.isClosed()){
				System.out.println("Closing SessionFactory");
				sessionFactory.close();
			}
		}
	}
 
Example 15
Source File: HibernateManyisOwningSide.java    From tutorials with MIT License 4 votes vote down vote up
public static void main(String[] args) {

        Cart cart = new Cart();
        Cart cart2 = new Cart();

        Items item1 = new Items(cart);
        Items item2 = new Items(cart2);
        Set<Items> itemsSet = new HashSet<Items>();
        itemsSet.add(item1);
        itemsSet.add(item2);

        cart.setItems(itemsSet);

        
        
        SessionFactory sessionFactory = null;
        Session session = null;
        Transaction tx = null;
        try {
            // Get Session
            sessionFactory = HibernateAnnotationUtil.getSessionFactory();
            session = sessionFactory.getCurrentSession();
            System.out.println("Session created");
            // start transaction
            tx = session.beginTransaction();
            // Save the Model object
            session.save(cart);
            session.save(cart2);
            session.save(item1);
            session.save(item2);
            // Commit transaction
            tx.commit();
            session = sessionFactory.getCurrentSession();
            tx = session.beginTransaction();

            item1 = (Items) session.get(Items.class, new Long(1));
            item2 = (Items) session.get(Items.class, new Long(2));
            tx.commit();
            
         
            System.out.println("item1 ID=" + item1.getId() + ", Foreign Key CartOIO ID=" + item1.getCart()
                .getId());
            System.out.println("item2 ID=" + item2.getId() + ", Foreign Key CartOIO ID=" + item2.getCart()
                .getId());

        } catch (Exception e) {
            System.out.println("Exception occured. " + e.getMessage());
            e.printStackTrace();
        } finally {
            if (!sessionFactory.isClosed()) {
                System.out.println("Closing SessionFactory");
                sessionFactory.close();
            }
        }
    }
 
Example 16
Source File: DAOService.java    From primefaces-blueprints with The Unlicense 4 votes vote down vote up
private Session getSession() {
    SessionFactory sf = HibernateUtil.getSessionFactory();
    return sf.isClosed() ? sf.openSession() : sf.getCurrentSession();
}
 
Example 17
Source File: HibernateBiDirectionalManyToManyMain.java    From journaldev with MIT License 4 votes vote down vote up
public static void main(String[] args) {
	
	Item iphone = new Item();
	iphone.setPrice(100); iphone.setDescription("iPhone");
	
	Item ipod = new Item();
	ipod.setPrice(50); ipod.setDescription("iPod");
	
	Cart cart = new Cart();
	cart.setTotal(150);
	
	Cart cart1 = new Cart();
	cart1.setTotal(100);
	
	Set<Cart> cartSet = new HashSet<Cart>();
	cartSet.add(cart);cartSet.add(cart1);
	
	Set<Cart> cartSet1 = new HashSet<Cart>();
	cartSet1.add(cart);
	
	iphone.setCarts(cartSet1);
	ipod.setCarts(cartSet);
	
	SessionFactory sessionFactory = null;
	try{
	sessionFactory = HibernateUtil.getSessionFactory();
	Session session = sessionFactory.getCurrentSession();
	Transaction tx = session.beginTransaction();
	session.save(iphone);
	session.save(ipod);
	tx.commit();
	sessionFactory.close();
	
	System.out.println("Cart ID="+cart.getId());
	System.out.println("Cart1 ID="+cart1.getId());
	System.out.println("Item1 ID="+iphone.getId());
	System.out.println("Item2 ID="+ipod.getId());
	
	}catch(Exception e){
		e.printStackTrace();
	}finally{
		if(sessionFactory != null && !sessionFactory.isClosed()) sessionFactory.close();
	}
	
}
 
Example 18
Source File: ProductsDAO.java    From primefaces-blueprints with The Unlicense 4 votes vote down vote up
private Session getSession() {
	SessionFactory sf = HibernateUtil.getSessionFactory();
	return sf.isClosed() ? sf.openSession() : sf.getCurrentSession();
}
 
Example 19
Source File: HibernateOneisOwningSide.java    From tutorials with MIT License 4 votes vote down vote up
public static void main(String[] args) {

        CartOIO cart = new CartOIO();
        CartOIO cart2 = new CartOIO();

        ItemsOIO item1 = new ItemsOIO(cart);
        ItemsOIO item2 = new ItemsOIO(cart2);
        Set<ItemsOIO> itemsSet = new HashSet<ItemsOIO>();
        itemsSet.add(item1);
        itemsSet.add(item2);

        cart.setItems(itemsSet);

        SessionFactory sessionFactory = null;
        Session session = null;
        Transaction tx = null;
        try {
            // Get Session
            sessionFactory = HibernateAnnotationUtil.getSessionFactory();
            session = sessionFactory.getCurrentSession();
            System.out.println("Session created");
            // start transaction
            tx = session.beginTransaction();
            // Save the Model object
            session.save(cart);
            session.save(cart2);
            session.save(item1);
            session.save(item2);
            // Commit transaction
            tx.commit();

            session = sessionFactory.getCurrentSession();
            tx = session.beginTransaction();
            item1 = (ItemsOIO) session.get(ItemsOIO.class, new Long(1));
            item2 = (ItemsOIO) session.get(ItemsOIO.class, new Long(2));
            tx.commit();

            System.out.println("item1 ID=" + item1.getId() + ", Foreign Key CartOIO ID=" + item1.getCartOIO()
                .getId());
            System.out.println("item2 ID=" + item2.getId() + ", Foreign Key CartOIO ID=" + item2.getCartOIO()
                .getId());

        } catch (Exception e) {
            System.out.println("Exception occured. " + e.getMessage());
            e.printStackTrace();
        } finally {
            if (!sessionFactory.isClosed()) {
                System.out.println("Closing SessionFactory");
                sessionFactory.close();
            }
        }
    }
 
Example 20
Source File: HibernateDaoSupport.java    From spring-analysis-note with MIT License 2 votes vote down vote up
/**
 * Conveniently obtain the current Hibernate Session.
 * @return the Hibernate Session
 * @throws DataAccessResourceFailureException if the Session couldn't be created
 * @see SessionFactory#getCurrentSession()
 */
protected final Session currentSession() throws DataAccessResourceFailureException {
	SessionFactory sessionFactory = getSessionFactory();
	Assert.state(sessionFactory != null, "No SessionFactory set");
	return sessionFactory.getCurrentSession();
}