qual a diferença entre os métodos getCurrentSession() e openSession()? e quando utilizar um em relação ao outro?
abraços
qual a diferença entre os métodos getCurrentSession() e openSession()? e quando utilizar um em relação ao outro?
abraços
.
O openSession abre sempre uma nova conexão cada vez que vc o chama…
já o currentSession verifica se tem alguma session no contexto que vc indicou no config, se não existir, ele cria uma pra vc…
dae depende pra q vc vai querer usá-lo…
aconselho a dar uma lida aqui
Man, eu estou com uma dúvida parecida. Eu estou me exercitando em uma aplicacao de login, onde o usuario loga num sistema e dependendo do seu nível, ele tem acessos diferentes. Até aqui, tudo bem. A aplicacao acessa um usuario no banco e o loga no sistema apenas se esse usuario existir.
Como eu estou trabalhando em cima de um exercício do curso fj26 da caelum, eu fui aprimorando e modificando algumas coisas. Dentro disso, eu criei uma classe chamada HibernateSessionFilter para criar a session para o banco.
Depois, quando eu já pensava na questao de seguranca de acesso via url, para aquelas pessoas que fossem pular a tela de login, eu criei uma classe chamada ValidaAcessoFilter para verificar se existe um usuario logado ou nao…
O problema é que em cada classe que eu uso o banco de dados, eu dou um comando como o do exemplo abaixo:
public List<Fornecedor> getFornecedores() {
System.out.println("lendo fornecedores ...");
Session session = HibernateUtil.openSession();
Dao<Fornecedor> dao = new Dao<Fornecedor>(session, Fornecedor.class);
return dao.list();
}
Ou seja: toda vez eu crio uma session nova. Nao tem como eu usar a session criada lá no login do usuario?? Isso nao facilita na questao de segurança para que nao se possa acessar a pagina pelas urls???
Man, eu estou com uma dúvida parecida. Eu estou me exercitando em uma aplicacao de login, onde o usuario loga num sistema e dependendo do seu nível, ele tem acessos diferentes. Até aqui, tudo bem. A aplicacao acessa um usuario no banco e o loga no sistema apenas se esse usuario existir.Como eu estou trabalhando em cima de um exercício do curso fj26 da caelum, eu fui aprimorando e modificando algumas coisas. Dentro disso, eu criei uma classe chamada HibernateSessionFilter para criar a session para o banco.
Depois, quando eu já pensava na questao de seguranca de acesso via url, para aquelas pessoas que fossem pular a tela de login, eu criei uma classe chamada ValidaAcessoFilter para verificar se existe um usuario logado ou nao…
O problema é que em cada classe que eu uso o banco de dados, eu dou um comando como o do exemplo abaixo:
public List<Fornecedor> getFornecedores() { System.out.println("lendo fornecedores ..."); Session session = HibernateUtil.openSession(); Dao<Fornecedor> dao = new Dao<Fornecedor>(session, Fornecedor.class); return dao.list(); }Ou seja: toda vez eu crio uma session nova. Nao tem como eu usar a session criada lá no login do usuario?? Isso nao facilita na questao de segurança para que nao se possa acessar a pagina pelas urls???
Uma das saídas que conheço é passar uma sessão via Construtor na classe DAO.
De onde ela vem? R: da HibernateUtil, em vez de retornar (no get()) uma sessionFactory, retorna uma sessionFactory.openSession();
Corrijam-me se estiver errado…