Ajuda consulta N:N com Hibernate

seguinte, tenho um relacionamento n:n com atributo entre item e orcamento,
quero fazer a consulta com uma junção entre as 3 tabelas usando sqlNative, em sql puro
eu consigo facilmente, agora em hibernate fica dando pau .

String sql2="select {orcamento.},{item.},{orcamentoItem.*} from orcamento o,item i,orcamento_item oi " +
“where o.cod_orcamento = oi.cod_orcamento and i.cod_item = oi.cod_item;”;

ret = session.createSQLQuery(sql2)
.addEntity(“orcamento”, Orcamento.class)
.addEntity(“item”, Item.class)
.addEntity(“orcamentoItem”,OrcamentoItem.class ).list();

exception é:org.hibernate.exception.GenericJDBCException

Alguém ai tem uma noção de como fazer isso em hibernate ?

Tenta algo assim:


	private List buscarDadosEntidade(String camposBuscar, Usuario usuario) {
		List retorno = null;
	      	// montando o HQL
		StringBuilder hql = new StringBuilder();
		hql.append("select ");
		hql.append(campos);
		hql.append(" from ");
		hql.append(pegarClasseEntidadeFacadeManipula().getName());
		hql.append(" e ");
		hql.append(" where (e.idUnico = ? or e.clientePai.idUnico=?)");
		
		// acerta a ordenação
		hql.append(" order by e.");
		hql.append(getCampoOrdenacao());
		
		// busca os dados
		Query	query	= HibernateUtil.currentSession().createQuery(hql.toString());
			query.setParameter(0, usuario.getCliente().getIdUnico());
			query.setParameter(1, usuario.getCliente().getIdUnico());
	
		return query.list();
	}


Bom por enquanto tive que apelar para o velho e bom JDBC para colocar
pra rodar isso.

Na documentação do hibernate ele não acha viável utilizar N:N com
composição, mas hora que tiver um tempo vou continuar tentando fazer
essa consulta .

valeu t+.

cara…por experiencia propria…

toda vez q eu tinha alguma dificulade pra fazer consultas, ou mesmo o mapeamento usando o hibernate…

era a modelagem do meu banco q estava errada, não estou falando q eh o seu caso…mas da uma revisada pra ter certeza do q vc esta querendo…

flw

Não vejo outra forma de fazer essa modelagem, já que tem que ser N:N mesmo, e se toda consulta que não conseguir fazer ter que mudar a modelagem, a produtividade acaba.

Mas se alguém souber a solução…