Ajuda com Query HQL no Hibernate

Eu tenho três tabelas no banco de dados.
quando executo a query abaixo por lá, é retornado um resultado como esperado, pois eu sei que esse dado existe.

SELECT DadoDiario.texto
FROM (Cnpj INNER JOIN Conta ON Cnpj.cnpj = Conta.cnpjId) INNER JOIN DadoDiario ON Conta.conta = DadoDiario.contaId
WHERE Cnpj.cnpj = '26118109000111' ;

Agora, quando tento fazer a query pelo hibernate, não me retorna nada. Aguém pode ver o que estou fazendo de errado?

public List<Object> buscaDado(String conta) {
		String hql = "SELECT dh FROM Cnpj cj JOIN cj.contas co JOIN co.dadosDiarios dh WHERE cj.cnpj = '26118109000111'";
		
		System.out.println(hql);
		Query query = session.createQuery(hql);
		List<Object> result = query.list();
		return result;
	}

Ativa o log do hibernate e veja qual a query que ele produz.

Por que você não utiliza um view, ao invés de fazer uma consulta com join’s no Hibernate ?

1 curtida

Concordo com @aszarael, se ele não tiver problema com burocracias de AD.

@oitathi Se você usa somente um banco de dados, você já tem a solução na sua própria pergunta, o SQL nativo está pronto, é muito mais prático, poderia executar o SQL diretamente pelo JDBC sem as tranqueiras do Hibernate.

Provavelmente seu problema está nos relacionamentos das entidades. Posta o código das entidades p/ verificar.