Hibernate ajuda!

7 respostas
C

estou usando HQL (primeira vez que uso) e tá dando um erro… :?

codigo:

public String  numeroDocumento(int id){
		StringBuilder hql = new StringBuilder("select numeroDocumento ").
		append("from br.com.topsafe.model.financeiro.ContaReceberLancamento  ").
		append("where br.com.topsafe.model.financeiro.ContaReceberLancamento in ").
		append("select contaReceberLancamento ").
		append("from br.com.topsafe.model.financeiro.Bloqueto ").
		append("where br.com.topsafe.model.financeiro.Bloqueto.id=?");
		
		Query select = getSession().createQuery(hql.toString()).setInteger(0, id);
		
		
		
		
		return (String) select.uniqueResult();
	}
erro:javax.servlet.ServletException: unexpected token: select near line 1, column 149 [select numeroDocumento from br.com.topsafe.model.financeiro.ContaReceberLancamento  where br.com.topsafe.model.financeiro.ContaReceberLancamento in select contaReceberLancamento from br.com.topsafe.model.financeiro.Bloqueto where br.com.topsafe.model.financeiro.Bloqueto.id=?]

org.vraptor.VRaptorServlet.service(VRaptorServlet.java:95)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)

br.com.defferrari.framework.filter.ExceptionFilter.doFilter(ExceptionFilter.java:82)

br.com.defferrari.framework.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:37)

alguma dica??

7 Respostas

arthurminarini

passa somente a classe e nao o caminho. outra coisa o in tem que ter ()
select campo Classe c where c.campo in (select …)
outra coisa o retorno seu ta sctring e uniqueresult retorna object como vc vai fazer com isso?
o cerot é vc tbm retornar object ou pegar o que vc quer e depois retornar em string

C

coloquei o in ()

:slight_smile:

mas agora diz:

javax.servlet.ServletException: Unable to resolve path [<a href="http://br.com">br.com</a>], unexpected token [br] [select numeroDocumento from br.com.topsafe.model.financeiro.ContaReceberLancamento  where br.com.topsafe.model.financeiro.ContaReceberLancamento.id in( select contaReceberLancamento from br.com.topsafe.model.financeiro.Bloqueto where br.com.topsafe.model.financeiro.Bloqueto.id=?)]

org.vraptor.VRaptorServlet.service(VRaptorServlet.java:95)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)

br.com.defferrari.framework.filter.ExceptionFilter.doFilter(ExceptionFilter.java:82)

br.com.defferrari.framework.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:37)

codigo:

public String  numeroDocumento(int id){
		StringBuilder hql = new StringBuilder("select numeroDocumento ").
		append("from br.com.topsafe.model.financeiro.ContaReceberLancamento  ").
		append("where br.com.topsafe.model.financeiro.ContaReceberLancamento.id in( ").
		append("select contaReceberLancamento ").
		append("from br.com.topsafe.model.financeiro.Bloqueto ").
		append("where br.com.topsafe.model.financeiro.Bloqueto.id=?)");
		
		Query select = getSession().createQuery(hql.toString()).setInteger(0, id);
		
		
		
		
		return (String) select.uniqueResult();
	}
Leozin

Olá

Vamos alterar ela um pouco só pra ver se ela funciona?

Assim:

"select o.numeroDocumento from ContaReceberLancamento o where o.id in (select b.contaReceberLancamento from Bloqueto b where b.id = ?)"

Acho que há um problema de relacionamento e que podemos facilitar ainda mais essa query. Mas testa primeiro com essa que eu te passei.

Abraço

C

bahh

javax.servlet.ServletException: ContaReceberLancamento is not mapped [select o.numeroDocumento from ContaReceberLancamento o where o.id in (select b.contaReceberLancamento from Bloqueto b where b.id = ?)]

org.vraptor.VRaptorServlet.service(VRaptorServlet.java:95)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)

br.com.defferrari.framework.filter.ExceptionFilter.doFilter(ExceptionFilter.java:82)

br.com.defferrari.framework.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:37)

ContaReceberLancamento não tá mapeada :shock:

lol vo da uma olhada aqui
valeu cara 8)

Leozin

posta o teu hibernate.cfg.xml aí :wink:

C

Meu Herói!!

funciono jow!!
ueheuehuehe
que maravilha 8)
salvo meu emprego
pkspkspskspkspsksp

Leozin

hueioaheuiaheuia

posta ae pro pessoal o que tu fez além disso, pra ficar mais fácil caso alguém encontre o mesmo problema

abraço

Criado 14 de abril de 2009
Ultima resposta 14 de abr. de 2009
Respostas 7
Participantes 3