Estou com o mesmo problema, quero pesquisar pelo nome.
Só um detalhe que vi na sua entity tratamento é que vc não especificou por o campo chave
que liga as duas, vc deveria corrigir para isto:
@EntitypublicclassTratamento{@Id@GeneratedValueprivateintid;CalendardataEntrada;@ManyToOne@JoinColumn(name="nomeDoCampoChaveNoBancoDeDadosParaoJoinDasTabelas")//sera o campo da foreign key, espero que entenda, geralmente id_paciente ou pacienteIdPacientepaciente;privatedoublevalor;privatebooleanstatus;
desta forma, se vc pesquisasse da forma abaixo ele utilizaria como criterio de pesquisa o Id, mas temos o mesmo problema que queremos a pesquisa pelo nome
publicList<Tratamento> buscaTratamentos(Paciente paciente) { return(List<Tratamento>) this.session.createCriteria(Tratamento.class) .add(Restrictions.eq("paciente",paciente)).list(); //ele automaticamente procuraria o id do seu paciente com o id do paciente do tratamento}
cara se tiver a reposta me mande, por favor!
[email removido]
Fmgasparino
kweles:
Olá Fmgasparino!
Estou com o mesmo problema, quero pesquisar pelo nome.
Só um detalhe que vi na sua entity tratamento é que vc não especificou por o campo chave
que liga as duas, vc deveria corrigir para isto:
@EntitypublicclassTratamento{@Id@GeneratedValueprivateintid;CalendardataEntrada;@ManyToOne@JoinColumn(name="nomeDoCampoChaveNoBancoDeDadosParaoJoinDasTabelas")//sera o campo da foreign key, espero que entenda, geralmente id_paciente ou pacienteIdPacientepaciente;privatedoublevalor;privatebooleanstatus;
desta forma, se vc pesquisasse da forma abaixo ele utilizaria como criterio de pesquisa o Id, mas temos o mesmo problema que queremos a pesquisa pelo nome
publicList<Tratamento> buscaTratamentos(Paciente paciente) { return(List<Tratamento>) this.session.createCriteria(Tratamento.class) .add(Restrictions.eq("paciente",paciente)).list(); //ele automaticamente procuraria o id do seu paciente com o id do paciente do tratamento}
cara se tiver a reposta me mande, por favor!
[email removido]
kweles, quando não especifico qual nome quero para o campo especifico, ele cria automatico a chave da Entidade relacionada. No meu caso criou paciente_id.
E o meu código acima funcionou, estava com problema na sessão na verdade.
Poderia postar seu código para analisarmos juntos?
Só não descobri como usar o boolean. True e false nao funciona.
Abs
kweles
Olá Meu amigo!
Eu consegui resolver meu problema! Seguindo sua idéia o que eu queria era pesquisar todos os pacientes
do tratamento pelo nome então consegui encontrar a resposta, seria mais ou menos assim:
public List<Tratamento> buscaTratamentos(Paciente paciente) {
return (List<Tratamento>) this.session.createCriteria(Tratamento.class)
.createCriteria("paciente")
.add(Restrictions.like("name", paciente.getName() + "%" )).list(); //ele automaticamente procuraria o id do seu paciente com o id do paciente do tratamento
}
No caso eu preciso fazer um novo criteria dentro do principal que é o tratamente, é como se eu estivesse navegando entre as entidades da composição!