JPA..uso de createQuery ..erro java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntax

2 respostas
P

Olá estou tentando pela primeira vez montar um createQuery

e está me dando o erro abaixo
Algumas duvidas :

- no select estou usando o nome do objeto e não a tabela do banco ?

- para ver o resultado estou usando Object é assim mesmo pois no select
tem atributos de dois objetos é asism mesmo ou tem outra forma de pegar
o resultado ?

se alguem puder me ajudar gradeceria

try{
			System.out.println("Inico ...testCreateQuery()");
			String parametro = "Exemplo";
			StringBuilder hql = new StringBuilder(); 
			
			hql.append("select a.id , a.value ,b.name,b.description");
			hql.append("from ImsDocument a ");
			hql.append("left join a.ImsDocumentField b");
			hql.append("where b.name = :name "); 

			Query query = imsDBMng.getManager().createQuery(hql.toString()); 
			query.setParameter("name", parametro);
			List lista = query.getResultList();
			 
            for (int i=0;i<lista.size();i++){
            	Object [] rs = (Object[]) lista.get(i);
            	System.out.println("valor de rs ="+rs[i]);

            }
Inico ...testCreateQuery()
- line 1:49: unexpected token: Ims_Document
- processEqualityExpression() : No expression to process!
- line 1:64: unexpected token: left
Erro testCreateQuery() =java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: Ims_Document near line 1, column 49 [select a.id , a.value ,b.name,b.descriptionfrom Ims_Document a left join a.Ims_Document_Field bwhere b.name = :name ]
">

2 Respostas

F

Com HQL voce pode criar um construtor na classe e os dados ja vem populados…
No construtor voce coloca os dados em ordem ex.:
Classe(Long id, String nome, String estado, Double saldo)

P

Olá,

uma ajuda não estou conseguindo visualizar o erro que está dano abaixo
pois tento fazer um join entre dois objetos ...

se alguém pudr me ajudar

agradeceria...

public void testCreateQuery() {
		Session session = (Session) g.getManager().getDelegate();
		try{
			String parametro = "Exemplo";
			StringBuilder hql = new StringBuilder(); 
			
			hql.append("select a.id , a.value , b.name, b.description ");
			hql.append(" from ImsDocument a ");
			hql.append(" left join a.ImsDocumentField b ");
		//	hql.append("where b.name = 'Exemplo' ");
			
                        Query query =  (Query) session.createQuery(hql.toString());
			//query.setParameter("name", parametro);
			List lista = query.getResultList();
			 
            for (int i=0;i<lista.size();i++){
            	Object [] rs = (Object[]) lista.get(i);
            	System.out.println("valor de rs ="+rs[i]);

            }
			 
---

select a.id , a.value , b.name, b.description  from ImsDocument a  left join a.ImsDocumentField b 
Erro testCreateQuery() =org.hibernate.QueryException: could not resolve property: ImsDocumentField of: br.com.certisign.ims.data.model.user.ImsDocument [select a.id , a.value , b.name, b.description  from br.com.certisign.ims.data.model.user.ImsDocument a  left join a.ImsDocumentField b ]
">
Criado 18 de dezembro de 2008
Ultima resposta 18 de dez. de 2008
Respostas 2
Participantes 2