Estou trabalhando em meu primeiro projeto com hibernate, e me deparei com um problema, que para mim era usual quando programado na mão, como obter o resultado de uma querie em outro método. por exemplo:
Aqui eu abro a conexão
final Configuration configuration = new Configuration().configure();
final StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
final SessionFactory factory = configuration.buildSessionFactory(builder.build());
final Session session = factory.openSession();
ok, funcionando conectado a partir desse momento, nada funciona…
eu possuo uma classe LIB, com os métodos e as minhas queries, crio um objeto dela, e chamado o método que preciso (imagino que seja isso)
Método da classe Lib
public List getAgendamentos(Session session) throws SQLException{
List rs=null;
try{
log.info("Realizando a pesquisa de agendamentos");
String hql = "SELECT * from tb_batch_agendamento where dat_insecao = :data";
Query query = session.createQuery(hql);
query.setParameter("data", "getdate()");
rs = (List) query.list();
}
catch (Exception e){
log.error("Erro na pesquisa de agendamento: " + e.getMessage());
}
return rs;
}</code>
1-Como mapear o List a minha classe @Entity? não é necessário?
2-Esta correto retornar rs = (List) query.list();?
3- o tipo de retorno public List esta correto?
na minha classe, então, chamo esse método:
List vObjAgendamento = (List) vObjLib.getAgendamentos(session);
1-Esta correto esse mapeamento? o java alerta que a lista não esta parametrizada.
e Percorro ele:
obs. BatchAgendamento é o nome da minha @Entity
for (final BatchAgendamento b : vObjbatch) { System.out.println(b); } System.out.println("\n----\n"); e fecho as sessões
session.close();
factory.close();
obrigado