Ajuda Criteria

Estou com problemas em criar uma Criteria, pois o relacionamento é grande.
Segue abaixo o Diagrama para entender melhor o relacionamento :

Vou tentar explicar, para Cadastrar um Agendamento de Consulta, eu preciso tem primeiro o Tipo de Local de Atendimento cadastrado, entao um
Local de Atendimento cadastrado usando esse tipo.
Assim como preciso de um Procedimento_Exame cadastrado para depois em ExameLocal fazer o relacionamento entre os dois.
Ae sim com o Tipo de Agenda cadastrado eu vou em cadastrar Agenda.

Segue um exemplo;

Tipo de Local de Atendimento : Hospital
Local de Atendimento : Os dados do Local em Si associado ao tipo (no caso Hospital)
Procedimento Exame: Os procedimentos que são realizados em um Local de Atendimento (Ex. todo o Codigo CID10)
Exame Local: É o tipo de exame que um local presta, por exemplo um Hospital faz X procedimento exame
Tipo de Agenda: seria o tipo dela, (Ex. Consulta, Odontologico, Ginecologista)

A duvida é a seguinte.
Na minha JSP eu seleciono:

Tipo da Agenda
Cliente
Funcionario
Profissional de Saude
Procedimento ou Exame (Aqui que está o problema)
Local de Atendimento
Outros Dados…

Eu gostaria de que ao selecionar em meu rich:comboBox o Procedimento_Exame ele me lista-se apenas os
Locais que fizessem aquele procedimento.
Ai que entra a duvida, com SQL eu consigo fazer só que gostaria de fazer com o Criteria.
Alguem se habilita a ajudar ??

Desde já agradeço.
Se puder explicar com detalhes eu ficaria mais agradecido ainda.

Com criteria tb é possivel fazer, mas por ser uma consulta longa onde vc teria q crias aliases para os relacionamentos, e por vc já ter familiaridade com sql, aconselho vc a usar o HQL, q é bem proximo do sql e provavelmente vc não tera dificuldades em fazer a consulta.

thiagocg

Obrigado por ajudar.
Voce teria como citar um exemplo, exemplificando os comandos?

Link da pagina da documentação do projeto:

http://www.hibernate.org/hib_docs/v3/reference/en-US/html/

ai vc busca a parte de hql, tem bastante coisa ai!

ja add aos favoritos a pag. pq vc vai usar bastante se decidir trabalhar com o hibernate!

Abraço

thiago

Mexendo eu fiz umas modificações, e agora a pagina chega a ser publicada, mais gera um erro que não encontro o motivo.
E também não popula o combo.

ficou assim o metodo no bean:

@SuppressWarnings("unchecked")
	public List<SelectItem> getexameLocal() {
		List<SelectItem> lista = new ArrayList<SelectItem>();
		LocalAtendimentoHandler localAtendimentos = new LocalAtendimentoHandler();
		System.out
				.println("Pegando as dependendias entre Local Atendimento -> Exame...");

		System.out.println("Local de Atendimento Selecionado "
				+ this.localAtendimentoSelecionado);

		Session session = HibernateUtil.currentSession();

		System.out.println(">> AQUI 1");

		try {
			System.out.println(">>> Entrei Try");

			Query hql = session
					.createQuery(
							"LocalAtendimento.id_locatend, LocalAtendimento.nomfant_locatend from ExameLocal"
									+ "inner join LocalAtendimento on ExameLocal.id_locatend = LocalAtendimento.id_locatend"
									+ "where ExameLocal.id_procex = :procedimento")
					.setString("procedimento", procedimentoExameSelecionado);

			System.out.println(">>> Return do Try");

			localAtendimentos = (LocalAtendimentoHandler) hql.list();
		} catch (Exception e) {
			System.out.println(">>> Entrei Catch");
			System.out.println(">>> ERRO " + e.getMessage());
			System.out.println(">>> Return do Catch");
		}

		for (LocalAtendimento localAtendimento : localAtendimentos.getLocalAtendimentos()) {

			lista.add(new SelectItem(localAtendimento.getNomeFantasia(),
					localAtendimento.getId().toString()));

		}
		return lista;
	}

E Assim no JSP:

<tr>
	<td><h:outputText value="Local de Atendimento" /></td>
	<td><rich:comboBox id="localAtendimentoExameParaComboBox"
			defaultLabel="-Selecione o Local de Atendimento-" enableManualInput="false"
			width="200px;" value="#{agendarHandler.localAtendimentoSelecionado}">
		<f:selectItems value="#{agendarHandler.exameLocal}" />
		</rich:comboBox></td>
</tr>

Gera o seguinte saida no Console do Eclipse:

AQUI 1

Entrei Try
15:00:44,770 ERROR PARSER:33 - line 1:1: unexpected token: LocalAtendimento

Entrei Catch
ERRO node to traverse cannot be null!
Return do Catch

Se puder ajudar, agradeço.

UP