Erro consulta jpql utilizando o operador NEW [RESOLVIDO]

Boa noite! estou tentando fazer uma consulta com jpa, pórem está dando um erro que não consigo resolver. Já procurei uma solução no google e no fórum e não achei. Segue:

[code]
public class LoginDaoImpl extends GenericaDaoImpl implements LoginDao {

@Override
public List<Login> listaLo() {
	List<Login> logins = new ArrayList<Login>();
	Query query = em.createQuery("select new modelo.PesquisaAutenticacao(l.usuario, c) from Login l inner join fetch l.clientes c where id = 1");
	
	
	
	List<PesquisaAutenticacao> resultados = query.getResultList();
	
	for(PesquisaAutenticacao result : resultados){
			System.out.println(result.getUsuario());
	}
	
	
	
	return resultados;
}

}[/code]

public class PesquisaAutenticacao {
	
	private String usuario;
	private List<Cliente> clientes;
	
	public PesquisaAutenticacao(String usuario, List<Cliente> clientes) {
		super();
		
		this.usuario = usuario;
		this.clientes = clientes;
	}
	
	
	/*getters e setters*/	
	
}
@Entity
public class Login implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer id;
	private String usuario;
	private String senha;

	@OneToOne
	private Funcionario funcionario;

	@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE},targetEntity=Cliente.class)
	@JoinTable(name="log_cli", joinColumns=@JoinColumn(name="id_login"),inverseJoinColumns=@JoinColumn(name="id_cliente") )
	public List<Cliente> clientes;
	
	
	/*getters e setters*/

}
@Entity
public class Cliente implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer id;

	@Column(length = 255)
	private String nome;

	@Column(length = 255)
	private String razaoSocial;

	@Column(length = 14)
	private String cnpj;

	@Column(length = 11)
	private String cpf;


	@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE},mappedBy="clientes",targetEntity=Login.class)
	public List<Login> logins;
	/*getters e setters*/	
	
}

Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [modelo.PesquisaAutenticacao] [select new modelo.PesquisaAutenticacao(l.usuario, c) from br.com.isis.doc.dominio.Login l inner join fetch l.clientes c where id = 1] at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1202) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1148) at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:275) at br.com.isis.doc.dao.hibernate.LoginDaoImpl.listaLo(LoginDaoImpl.java:20) at test.Main.main(Main.java:20) Caused by: org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [modelo.PesquisaAutenticacao] [select new modelo.PesquisaAutenticacao(l.usuario, c) from br.com.isis.doc.dominio.Login l inner join fetch l.clientes c where id = 1] at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54) at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47) at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82) at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:261) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770) at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:272) ... 2 more
Deste já agradeço se alguém me ajudar.

Oi,

Nunca usei hibernate, mas a mensagem diz que não consegue encontrar o construtor da classe…

Vc tem erros de sintaxe na sua query.
O que você quer retornar? PesquisaAutenticacao é um bean configurado na sua unidade de persistência?
Fica difícil corrigir sua query sem entender seu problema.

cara,

acho que vai funcionar, so se sua classe PesquisaAutenticacao ficar assim

public class PesquisaAutenticacao {  
      
    private String usuario;  
    private Cliente cliente;  
      
    public PesquisaAutenticacao(String usuario, Cliente cliente) {    
        this.usuario = usuario;  
        this.cliente = cliente;  
    }  
      
      
    /*getters e setters*/     
      
}

Pq vc nao usa sua Classe Login msm?

t+

[quote=davidbuzatto]Vc tem erros de sintaxe na sua query.
O que você quer retornar? PesquisaAutenticacao é um bean configurado na sua unidade de persistência?
Fica difícil corrigir sua query sem entender seu problema.[/quote]

Bem desejo carregar nome e cnpj dos Clientes quando efetuar o login, porem eu não estou conseguindo carregar os atributos da collection cliente.
Algo como o exemplo abaixo, porém carregando um objeto.

cara,

pq vc não usa a sua entidade Login msm?

Se vc usar o construtor que eu te passei, com aquela query, vai funcionar a sua consulta, nao sei se vai ser do jeito que vc queria.

t+

[quote=alissonvla]cara,

pq vc não usa a sua entidade Login msm?

Se vc usar o construtor que eu te passei, com aquela query, vai funcionar a sua consulta, nao sei se vai ser do jeito que vc queria.

t+[/quote]
Cara obrigado! funcionou do jeito que eu queria.

boa… :lol:

marque o post como resolvido.

t+

“”