Hibernate Exception - Could not create query

3 respostas
M

Olá pessoal,

estou obtendo o seguinte erro com uma query:

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: net.sf.hibernate.exception.GenericJDBCException: Could not execute query
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
	org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
	org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

root cause

java.lang.RuntimeException: net.sf.hibernate.exception.GenericJDBCException: Could not execute query
	pacote.MateriaPrimaService.getMateriaPrimaList(MateriaPrimaService.java:131)
	org.apache.jsp.AddMateriaPrima_jsp._jspService(AddMateriaPrima_jsp.java:112)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
	org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
	org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

a função onde o erro aparece é a seguinte:

public List getMateriaPrimaList()
	{
		Session session = ConnectionFactory.getInstance().getSession();

		try
		{   
			Query query =
				session.createQuery(
					"select materiaprima.codigo," +
                                        "       materiaprima.nome," +
                                        "       materiaprima.unidade, " +
                                        "       materiaprima.descricao," +
                                        "       materiaprima.custo," +
                                        "       materiaprima.estoqueMinimo " +
                                        " from pacote.MateriaPrima as materiaprima " +
                                        " order by materiaprima.nome");
			return query.list();

		}
		catch (HibernateException e)
		{
                        String str;
                        str = e.getMessage();
			System.err.println("Hibernate Exception" + e.getMessage());
			throw new RuntimeException(e);
		}
		finally
		{
			if (session != null)
			{
				try
				{
					session.close();
				}
				catch (HibernateException e)
				{
					System.err.println("Hibernate Exception" + e.getMessage());
					throw new RuntimeException(e);
				}

			}
		}
	}

Achei que poderia ser erro na query, já que nao tenho familiaridade com essa hibernate query language, mas apesar de ter feito mudanças (inclusive ocultando o select e os atributos e iniciando do from), recebo o mesmo erro. Será algo na conexão? Meus dados de conexao estao no hibernate.properties, da seguinte forma:

#Firebird

hibernate.dialect net.sf.hibernate.dialect.FirebirdDialect
hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver
hibernate.connection.url jdbc:firebirdsql:localhost/3050:E:\Leticia\Java\BD\teste.fdb
hibernate.connection.username usuario
hibernate.connection.password senha


#################################
### Hibernate Connection Pool ###
#################################

hibernate.connection.pool_size 1
hibernate.statement_cache.size 25

Agradeço a atenção

3 Respostas

M

Está faltando alguma informação que eu possa postar pra ser mais fácil entender o problema?

_fs

A exceção não está ajudando muito mesmo. Tem certeza que postou ela tuda?

Z

Você consegue fazer alguma coisa no Hibernate? Pelo tipo da exceção lançada (GenericJDBCException), desconfio que o problema esteja na conexão. Tente uma consulta simples, como session.get(MateriaPrima.class, …) e veja se funciona.

Outra coisa, qual a linha 131 do código?

Criado 21 de junho de 2005
Ultima resposta 21 de jun. de 2005
Respostas 3
Participantes 3