Olá Alberto, boa noite!
Talvez eu não tenha deixado isso muito claro, vou tentar elaborar minha pergunta melhor. Eu quero um relatório que me diga quantas movimentações cada conta teve.
select c.titular, count(*) as qtd_movimentacoes from Conta c join Movimentacao m on m.conta_id = c.id group by c.titular;
+---------------+-------------------+
| titular | qtd_movimentacoes |
+---------------+-------------------+
| Joao Ferreira | 7 |
| Ramires | 2 |
+---------------+-------------------+
Pode não fazer muito sentido no contexto, mas acho que essa consulta seria o equivalente a, quantas vendas cada vendedor fez esse mês ou coisa desse tipo.
Nessa consulta que você me sugeriu, não vejo nenhuma ligação com movimentações, mas ainda sim escrevi o código que você postou. Ficou assim:
EntityManager entityManager = JPAUtil.getEntityManagerFactory();
Query queryResult = entityManager
.createQuery("select c,count(c) from Conta c group by c.id");
List<Conta> listaDeContas = queryResult.getResultList();
System.out.println(listaDeContas.get(0).getTitular());//erro de cast aqui
Acontece que ele da um erro de cast na linha em que eu tento imprimir uma conta, o que eu acho muito estranho. Você pode esclarecer isso para mim também ? Pois eu imaginava que me retornaria uma lista de contas.
Só uma observação. na última linha você fez uma consideração, mas minha consulta traz movimentações, e por isso agrupei por c.id
, o que poderia ser qualquer outro atributo da conta, ou m.conta_id
. Pelo menos no mysql é assim.