Duvida Hibernate (Boa Pratica)?

Ola amigos do GUJ,

Estou fazendo um site pessoal, com intuito de aprendizado, porem gostaria de saber se estou utilizando de boas praticas

Eu tenho um Bean Categoria, com atributos: nome, tipo, id

A minha dúvida está no seguinte,
eu fiz uma DaoCategoria com o seguinte metodo:

public List search(String hql) throws Exception { session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); List lista = session.createQuery(hql).list(); session.getTransaction().commit(); return lista; }

Daí eu quero listar categorias numa pagina JSP

Eu estou fazendo da seguinte forma:

		<%	DaoCategoria daoCat = new DaoCategoria();
		List<Categoria> lista = daoCat.search("from Categoria as cat where cat.tipo = 10");
		for(int i= 0; i < lista.size(); i++){ %>
		
		<div class="itemestilo"><a href="fotos.jsp?Fotos-<%=lista.get(i).getCatNome()%>"> <%=lista.get(i).getCatNome()%> </a></div>
		<%	} %>

Só que eu precisava limitar a consulta pra apenas 5 resultados por exemplo,
será que eu vou precisar criar outro metodo só pra criar uma condicao usando query.setMaxResults(X)… ?
ja que o HQL nao aceita o “LIMIT 5”

Minha solução no momento está sendo limitar no for o tamanho do (i), mas nao seria legal carregar a lista toda.

Já aproveitando gostaria de saber se é assim que geralmente fica o codigo JSP ?
ou tem como separar melhor o codigo java do html?

Agradeço desde já a atenção de todos!
[]'s

cara fuja de scriptlets sempre!!!
dê uma lida neste post que vai entender o que estou dizendo: http://www.guj.com.br/posts/list/26894.java#145848

comece por isto: http://java.sun.com/products/jsp/jstl/

flw

Hewerton

Você já parou pra ver que existem métodos setFirstResult() e setMaxResults() no objeto Query e Criteria do Hibernate exatamente pra fazer isso?

Olá

Use da seguinte forma

[code]Query query = session.createQuery(“from Categoria as cat where cat.tipo = 10”);

/* aqui vc definie a quantidade de registros */

// de onde começa - do primeiro
query.setFirstResult(0);

// até onde termina - até o quinto
query.setMaxResults(5);[/code]

isso tb pode ser usado para paginação… quer dizer isso é para paginação

até mais

Sanderson

ok, deu certo!

obrigado a todos que ajudaram…
:smiley: