Olá pessoal, estou precisando de uma ajuda para elaborar uma criteria do seguinte SQL:
select a.*, (select count(b.*) from tabelaB b where a.id = b.tabelaA) as conta
from tabelaA a
É possível criar isso no Hibernate?
Obrigado.
Olá pessoal, estou precisando de uma ajuda para elaborar uma criteria do seguinte SQL:
select a.*, (select count(b.*) from tabelaB b where a.id = b.tabelaA) as conta
from tabelaA a
É possível criar isso no Hibernate?
Obrigado.
O que preciso realmente é saber se na TabelaB existem elementos da TabelaA, por exemplo, vamos trocar a TabelaA por Email e a TabelaB por Anexo. O que eu preciso é saber na hora de listar os emails é quais possuem anexos e quais não possuem.
Este select resolve meu problema, mas não consigo fazê-lo no Hibernate:
select e.*, (select count(a.*) from Anexo a where e.id = a.email) as qtde_anexo
from Email e
Eu até consegui listar os emails que possuem anexo, assim:
public List<Email> buscaEmail() {
Criteria criteria = this.session.createCriteria(Email.class, "e");
criteria.add(Subqueries.exists(
DetachedCriteria.forClass(Anexo.class, "a")
.setProjection(Projections.id())
.add(Restrictions.eqProperty("a.email", "e.id"))
));
return criteria.list();
}
Mas o que precisava é colocar o resultado da Subquery em um campo Transient do Email, pois eu preciso listar todos os emails e apenas diferenciar quais possuem anexos e quais não possuem.
Será que alguém poderia me dar uma luz?
Obrigado.
[quote=felipebbarbosa]Olá pessoal, estou precisando de uma ajuda para elaborar uma criteria do seguinte SQL:
select a.*, (select count(b.*) from tabelaB b where a.id = b.tabelaA) as conta
from tabelaA a
É possível criar isso no Hibernate?
Obrigado.[/quote]
Cara essa SQL esta certa ???
acho que isso esta errado, ao fazer select count(b.*) ele retorna apenas um dado não o nome de um campo…
Você tem razão, o correto é usar Count() ao invés de Count(b.).
Mas como eu faço isso no Hibernate?