Critéria passando como parâmetro uma foreign key - Hibernate

4 respostas
jason_bourne

Pessoal,

Estou tentando fazer uma listagem de contas a pagar passando como parâmetro o id do fornecedor dessas contas, que neste caso o fornecedor é uma chave estrangeira (fornecedor_id). Alguém saberia como fazer isso no hibernate usando o Criteria?

4 Respostas

R
public List<ContasPagar> findContasByFornecedor(Fornecedor fornecedor) {
		Criteria criteria = getSession().createCriteria(ContaPagar.class);
		criteria.add(Expression.eq("fornecedor.id", fornecedor.getId()));
		return = criteria.list();
	}

Algo neste sentido… dá uma olhada e qualquer dúvida estamos aê…

von.juliano

Aposto que isso é de uma apostila da caelum! :mrgreen:

Criteria c1 = session.createCriteria(ContaPagar.class); Criteria c = c1.createCriteria("fornecedor"); c.add(Restrictions.eq("id", idFornecedor)); return c.list();Blz? Flw! :thumbup:

jason_bourne

obrigado pessoal!

T

Pessoal estou passando pela mesma situação, tentei entender o código de vocês mas ainda ficou uma dúvida, no meu caso eu utilizo tabela evolucao e tabela paciente utilizando o campo idpaciente_paciente e id_paciente para fazer a relação das 2. Já tentei de muitas formas mas não tive sucesso, alguma ideia de como resolver?

Tentei de muitas formas, a ultima foi assim:

@Override
    public List<Evolucao> obterPorIdPaciente(long idPaciente) {
        session = null;
        transaction = null;
        Evolucao evolucao;

        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            Criteria consulta = session.createCriteria(Evolucao.class);
            Criteria consulta2 = consulta.createCriteria("paciente");
            consulta.add(Restrictions.eq("idpaciente", idPaciente));
            List<Evolucao> listaEvolucao = consulta.list();
            transaction.commit();
            return listaEvolucao;
        } catch (HibernateException e) {
            System.out.println("Não foi possível obter a evolução: " + e.getMessage());
        } finally {
            try {
                session.close();
            } catch (Throwable e) {
                System.out.println("Não foi possível encerrar a operação de obter: " + e.getMessage());
            }
        }
        return null;
    }

Grato

Criado 15 de julho de 2008
Ultima resposta 7 de mar. de 2014
Respostas 4
Participantes 4