Alternativa ao ResultTransformer do Hibernate no JPA.
public class AgendaView implements Serializable {
private String agendaNome;
private String contatoNome;
public AgendaView(String agendaNome,String contatoNome) {
this.agendaNome = agendaNome;
this.contatoNome = contatoNome;
}
public String getAgendaNome() {
return agendaNome;
}
public String getContatoNome() {
return contatoNome;
}
}
public List<AgendaView> buscarAgenda(String nome){
if(nome != null && !nome.isEmpty()){
String query = "select"
+ " new com.AgendaView(a.nome,c.nome) from " + Agenda.class.getName() +" a"
+ " left join a.contatos c "
+ " where "
+ " lower(a.nome) like '" + nome.toLowerCase() + "%' or"
+ " lower(c.nome) like '" + nome.toLowerCase() + "%'"
+ " order by a.nome, c.nome";
TypedQuery<AgendaView> q = em.createQuery(query, AgendaView.class);
return (List<AgendaView>) q.getResultList();
}else {
return null;
}
}
Nenhum comentário:
Postar um comentário