HIbernate ...duvida no uso de createQuery com mais de dois objetos?

Olá,

estou usando JPA com Hibernate uma parte com JPA e algumas consultas vou usar Hibernate

queria tirar uma duvida a respeito createQuery pois tenho um objeto
estou usando annotation nos dois objetos …

Um Public é um Private (1-1)

Quando tento trazer no select um objeto me da erro
fazendo join entre esses objetos …


try{
  Session session = (Session) get.getManager().getDelegate();

  List listas = session.createQuery("select pri from Public as pub join pub.Private as pri where pub.id=4")
  .list();
  System.out.println("Size listas = "+listas.size());
} catch(Exception e){
			
			System.out.println("Erro  ="+e);
		}

-- da o erro

Erro testCreateQuery() =org.hibernate.QueryException: could not resolve property: Private of: br.com.Public [select pri from br.com.Public as pub join pub.Private as pri where pub.id=4]

e quando faço assim não me dá erro

Minha duvida é proque vou ter query com 5 objetos(tabelas) que vou ter que mostrar o campo de cada
objeto. Exemplo : select a.codigo,b.nome,c.saldo,d.saldoanterior from objeto a,objeto b,objeto c , objeto d

Como fazer assim ??? já que quando ponho join entre os objetos me da erro ???

Com a situação acima deu certo pois é (1-1) e quando tiver (1-N) de varios objetos …

Se alguém puder me ajudar agradeceria …

abs


 List listas = session.createQuery("select pri from Private as pri where pri.id=4")
 .list();
						
 System.out.println("Size listas = "+listas.size());


-- resultado

Size listas = 1

Se suas Entitys estão configuradas corretamente, com os relacionamentos corretos, não há porque ocorrer erros assim…
Verifique os seus relacionamentos, se estão corretos e também o SQL gerado para ver sé o que está sendo feito é exatamente o que você espera que seja feito… Muitas vezes o problema é na sua lógica do HQL e não nos relacionamentos…

Abraços