LogIn Usando Hibernate [Resolvido]

Bom dia!

Estou fazendo uma aplicação, onde devo validar Usuario e Senha, para ques eja exibida a tela de boas vindas.
A interface gráfica é em JSP.

Mas só que esta acontecendo, de quando se digita usuario e senha, mesmo se a senha não é a mesma do usuario, a tela aparece. Somente se o ‘Usuario’ estiver incorreto, que ele da a mensagem de erro.
Minha dúvida é como consigo fazer com que ele valide a senha, de acordo com o usuario?

Por favor, quem puder me ajudar ficaria muito grato. Segue os códigos:

Metodo da classe de Conexao

[code]

public Funcionario validarSenha(String user, String pass){
Session session = factory.openSession();
Funcionario s = (Funcionario)session.load(Funcionario.class,user);
s.setUsuario(user);
s.setSenha(pass);
session.flush();
session.close();
return s;
}[/code]

Trecho onde se faz a verificação:

[code]<%
String nome = request.getParameter(“usuarioJSP”);
String senha = request.getParameter(“senhaJSP”);

	try{
		
	HibernateDAO dao = new HibernateDAO();
	
	Funcionario f = dao.validarSenha(nome, senha);	
		
		if((nome.equals(f.getUsuario())) && (senha.equals(f.getSenha()))){				
		....
	}%&gt;[/code]

Estou começando agora a usar Hibernate, quem tiver um material de apoio para indicar, também agradeceria.
Até mais.

public Funcionario validarSenha(String user, String pass){ Session session = factory.openSession(); Funcionario s = (Funcionario)session.load(Funcionario.class,user); // aqui você carrega o funcionário do banco de dados com o usario e senha lá cadastrados s.setUsuario(user); // mas aqui você substitui o usuário s.setSenha(pass); // e aqui a senha, com os valores passados por parâmetro session.flush(); session.close(); return s; }
tente:

public Funcionario getFuncionario(String user){ // o nome ajuda a entender o que o método faz... também não é necessário passar a senha Session session = factory.openSession(); Funcionario s = (Funcionario)session.load(Funcionario.class,user); session.flush(); session.close(); return s; }

public Funcionario getFuncionario(String user){ // o nome ajuda a entender o que o método faz... também não é necessário passar a senha Session session = factory.openSession(); Funcionario s = (Funcionario)session.load(Funcionario.class,user); session.flush(); session.close(); return s; }[/quote]

Muito obrigado pela ajuda wbdsjunior!

Eu ainda não entendo bem alguns comandos do Hibernate.

Mas só um detalhe. Após fazer o código que me passou, ocorreu o erro: could not initialize proxy - no Session

Pesquisando aqui no guj mesmo, encontrei uma solução, que no caso, o código que vc me passou ficou assim:

public Funcionario getFuncionario(String user){ // o nome ajuda a entender o que o método faz... também não é necessário passar a senha Session session = factory.openSession(); Funcionario s = (Funcionario)session.load(Funcionario.class,user); s.toString(); session.flush(); session.close(); return s; }

O tópico que fala desse erro [could not initialize proxy - no Session] é este.

Mas muito obrigado pela ajuda, agora pelo menos tenho uma base de como funciona o load. =D

[]'s

Aproveitando o tópico, estou fazendo um login fiz como colocaram no tópico só que o meu está dando este erro

Erro

[INFO: Not binding factory to JNDI, no JNDI name configured
Exception in thread “AWT-EventQueue-0” org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.Integer, got class java.lang.String
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:86)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:795)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:788)]

Metodo
[ public Usuario validarSenha(String login, String senha){
//Inicia Conexao
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//Puxa os Dados do Banco
Usuario s = (Usuario)session.load(Usuario.class,login);
s.setLogin(senha);
s.setSenha(login);
//Fecha Conexao
session.beginTransaction().commit();
//Retorna os Dados
return s;
}]

Onde estou chamando o metodo
[ String login = txtLogin.getText();
String senha = txtSenha.getText();

        UsuarioHibernateDao uDao = new UsuarioHibernateDao();
        
        Usuario u = uDao.validarSenha(login, senha);
        
        if(login.equals(u.getLogin()) && (senha.equals(u.getSenha()))){
            JOptionPane.showMessageDialog(null,"Login Efetuado com Sucesso");
        }
        else{
            JOptionPane.showMessageDialog(null,"Usuário ou Senha inválidos");
        }]

Porque está dando erro ?

Desde de já agradeço !