# Session/EntityManger is closed

**URL:** <https://discourse.hibernate.org/t/session-entitymanger-is-closed/4100>\
**Category:** Hibernate ORM\
**Created:** [April 29, 2020, 12:55pm UTC](https://discourse.hibernate.org/t/session-entitymanger-is-closed/4100 "2020-04-29T12:55:31Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Talemantros](https://avatars.discourse-cdn.com/v4/letter/t/73ab20/32.png) [@Talemantros](https://discourse.hibernate.org/u/Talemantros)\
**Post date:** [April 29, 2020, 12:55pm UTC](https://discourse.hibernate.org/t/session-entitymanger-is-closed/4100/1 "2020-04-29T12:55:31Z")

</div>

Hey,  
i´m new here and new to Hibernate (since Yesterday)  
I want to write a Method “queryRead” which i want use from the whole Project to give me a List of Objects from a class

I have this

```auto
	public List<?> queryRead(final String query) 
	{
		Query<?> q;
		
		Session session = getSession();
		try 
		{
			session.beginTransaction();
			q = session.createQuery(query);
		} finally 
		{
			session.close();
		}

		return q.list();
	}

```

For get the Session

```auto
	public synchronized Session getSession() {
		if (sessionFactory == null) {
			try {
				ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
				sessionFactory = configuration.buildSessionFactory(serviceRegistry);
			} catch (HibernateException e) 
			{
				throw new RuntimeException("(HibernateHelper) Hibernate session factory creation failed", e);
			}
		}
		return sessionFactory.openSession();
	}
```

Other Methods like write, delte, update are correct so i think to get the Session is fine

Now i want to use the Method to get a List from my Homepage.java like

```auto
		HibernateHelper hh = new HibernateHelper(Book.class);^
		List<Book> books = (List<Book>) hh.queryRead("from Book");

		for(Book b : books)
		{
			System.out.println(b);
		}
```

Now the Error is Entity/SessionManager is closed.

I don´t know why because the Session generated in queryRead

If if write this by HomePage.java it works

```auto
		Session session = hh.getSession();
		Query<Book> q = session.createQuery("from Book");
		List <Book> books = q.list();
		
		for(Book b : books)
		{
			System.out.println(b);
		}
```

But i don´t want to generate a Session in Homepage.java i want it generated in HibernateHelper himself.

Sorry for the English

Greetings
