Ola pessoal!
Estou tendo dificulades para realizar uma HQL. Esta dando a exceçao acima. Alguem pode ajudar? :(
exception
javax.servlet.ServletException
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:69)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NullPointerException
br.com.guiadesaloes.dao.UsuarioDao.existeUnico(UsuarioDao.java:29)
br.com.guiadesaloes.logic.UsuarioLogic.efetuaLogin(UsuarioLogic.java:61)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:61)
org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:32)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:130)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:57)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
br.com.guiadesaloes.dao.DaoInterceptor.intercept(DaoInterceptor.java:17)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Classe UsuarioDao
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import br.com.guiadesaloes.beans.Usuario;
public class UsuarioDao extends Dao<Usuario> {
private Session session;
UsuarioDao(Session session) {
super(session, Usuario.class);
}
public Usuario existeUnico(Usuario u) {
String hql = "select u " +
"from Usuario as u " +
"where u.login = :login " +
"and u.senha = :senha ";
//teste
System.out.println(hql);
Query query = getSession().createQuery(hql);
query.setParameter("login", u.getLogin());
query.setParameter("senha", u.getSenha());
return (Usuario) query.uniqueResult();
}
public void adiciona(Usuario u) {
this.session.save(u);
}
public void remove(Usuario u) {
this.session.delete(u);
}
public void atualiza(Usuario u) {
this.session.merge(u);
}
@SuppressWarnings("unchecked")
public List<Usuario> listaTudo() {
return this.session.createCriteria(Usuario.class).list();
}
public Usuario procura(Long id) {
return (Usuario) session.load(Usuario.class, id);
}
}
Classe Usuario
package br.com.guiadesaloes.beans;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@SuppressWarnings("serial")
@Entity
public abstract class Usuario implements Serializable {
private Long id;
private String nome;
private String cpf;
private int rg;
private String email;
private int telefone;
private String login;
private String senha;
private String role;
private Endereco endereco;
private Set<Salao> salao;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String i) {
this.cpf = i;
}
public int getRg() {
return rg;
}
public void setRg(int rg) {
this.rg = rg;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getTelefone() {
return telefone;
}
public void setTelefone(int i) {
this.telefone = i;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="endereco_id")
public Endereco getEndereco() {
return endereco;
}
public void setUsuarioSalao(Set<Salao> salao) {
this.salao = salao;
}
@OneToMany
@JoinTable(
name="usuarioSalao",
joinColumns = @JoinColumn( name="usuario_id"),
inverseJoinColumns = @JoinColumn( name="salao_id")
)
public Set<Salao> getUsuarioSalao() {
return salao;
}
public void setRole(String role) {
this.role = role;
}
public String getRole() {
return role;
}
public boolean hasRole(String s) {
String role = " " + this.role + " " ;
return role.contains(s);
}
public void setLogin(String login) {
this.login = login;
}
public String getLogin() {
return login;
}
}
MInha Logica
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Out;
import org.vraptor.scope.ScopeType;
import br.com.guiadesaloes.beans.Role;
import br.com.guiadesaloes.beans.Usuario;
import br.com.guiadesaloes.dao.DaoFactory;
import br.com.guiadesaloes.dao.DaoInterceptor;
import br.com.guiadesaloes.dao.UsuarioDao;
@Component
@InterceptedBy(DaoInterceptor.class)
public class UsuarioLogic {
private final DaoFactory daoFactory;
private Usuario usuario;
public UsuarioLogic(DaoFactory daoFactory) {
this.daoFactory = daoFactory;
}
@Out(scope=ScopeType.SESSION)
public Usuario getUsuario() {
return usuario;
}
@Role("admin")
public void adiciona(Usuario usuario) {
}
@Role("admin")
public void remove(Usuario usuario) {
}
@Role("admin")
public void altera(Usuario usuario) {
}
public void lista(Usuario usuario) {
}
public void busca(Usuario usuario) {
}
public void login() {
}
public String efetuaLogin(Usuario usuario) {
UsuarioDao dao = this.daoFactory.getUsuarioDao();
this.usuario = dao.existeUnico(usuario);
if (this.usuario != null) {
return "ok";
} else {
return "invalid";
}
}
public void logout() {
this.usuario = null;
}
}
Meu Jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guia de Saloes - Login</title>
</head>
<body>
<h3>Formulario</h3>
<form action="usuario.efetuaLogin.logic" method="POST" >
Login: <input name="usuario.login" type="text" size="20" maxlength="20" />
Senha: <input name="usuario.senha" type="password" size="20" maxlength="20" />
<input type="submit" value="Enviar" />
</form>
</body>
</html>
