javaEE pobranie rekordu z bazy

0

Witam dopiero uczę się javyEE.
W swoim testowym projekcie używam

  • JavaServer Faces
  • Hibernate 3.2.5
    z pobraniem listy nie mam problemu
w klasie PostController 
public List<Post> getList()
{
	EntityManager em = DBManager.getManager().createEntityManager();
	List list = em.createNamedQuery("Post.findAll").getResultList();
	em.close();
	return list;
}
w html
<ui:repeat value="#{postController.list}" var="post">
...

jednak nie weim czy podejście dla wyciągania 1 elementu jest poprawne:

w klasie PostController
public String getOne()
{
	this.post.setId(2);
	
	EntityManager em = DBManager.getManager().createEntityManager();
	this.post = em.find(Post.class, post.getId());
	em.close();
	return "";
}
w html
#{postController.one} // tu wywołuje metody które mi pobierze dane 

<h1>#{postController.post.id}</h1><br/>
#{postController.post.name}<br/>
#{postController.post.description}<br/>

Chodzi o to #{postController.one} jakoś to mało eleganckie ..
Dobrze to robię?

0

Uzywasz JPA a nie bezpośrednio Hibernate, to raz :P
Dwa, można to zrobić tak jak napisałeś, jeśli o to ci chodzi :)

0

A jak można zrobić to inaczej ?

A może znacie dobrego tutka który rozwiał by moje wątpliwości ?
Jestem przyzwyczajony raczej do wzorca MCV lub czegoś podobnego, gdzie akcja pobiera dane i tpl i je wypluwa. A tu html wywołuje metody.
Przerobiłem już książkę Java EE 6. Programowanie aplikacji WWW Autor: Krzysztof Rychlicki-Kicior i nie wiem gdzie daje szukać.

0

Ja korzystam z Hibernate w swoich projektach, mam to rozplanowane w następujący sposób:

HibernateBeanUtil.java (inicjalizowana tylko raz przy starcie aplikacji)

  • inicjalizacja hibernate
  • inicjalizacja sessionFactory

EventManager.java

  • open session
  • open transaction

następnie w miejscu gdzie chcesz np. wywołać select
EventManager em = ......
em.select(...);
em.update(...);
itd..

1 użytkowników online, w tym zalogowanych: 0, gości: 1