Trazendo apenas uma coluna usando Hibernate

Muitos já devem ter se deparado com situações onde se faz necessário que apenas não mais que uma coluna da tabela seja trazida, o Hibernate oferece uma solução pra isso usando HQL. Para isso vamos usar a Classe Consulta como exemplo, ela tem um relacionamento com a Classe médico e desejamos trazer todos os horário com consultas ativas de um determinado médico em um determinado dia.


Crie a seguinte query HQL:


StringBuffer hql = new StringBuffer();

hql.append("SELECT hora FROM Consulta ");

hql.append("WHERE crm_medico=:crm ");

hql.append("AND status=:status ");

hql.append("AND data=:data ");


Nessa query fazemos a seleção apenas da coluna hora, que é o dado buscado, e mais abaixo declaramos os parâmetros.


Crie a query e a transação:


Transaction tx = session.beginTransaction();

Query query = session.createQuery(hql.toString());


Passe os parâmetros:


SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

query.setString("crm", crm);

query.setBoolean("status", true);

query.setString("data", sdf.format(data));


Note que usamos um SimpleDateFormat na data e passamos a mesma como string na nossa query.


Por fim faça o commit e passe a lista retornada para uma lista do tipo de dado buscado no nosso caso uma lista de Date.


tx.commit();

horarios=(List<Date>) query.list();

Category

Category

  • (1)
  • (1)
  • (1)
  • (1)
  • (1)
  • (1)

Category

Category