Dae pessoal,
Seguinte, estou com problema com uma aplicação minha para poder logar no site, antes eu usava Windows(Eclipse+java+Mysql) funcionava direitinho, agora que estou usando Linux(Eclipse+java+Mysql) esta dando o seguinte erro:
exception
javax.servlet.ServletException: usuario is not mapped [select u from usuario as u where u.login = :login and u.senha = :senha ]
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
org.hibernate.hql.ast.QuerySyntaxException: usuario is not mapped [select u from usuario as u where u.login = :login and u.senha = :senha ]
org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181)
org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:93)
org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:277)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:251)
org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:101)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:80)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
br.com.caelum.lojavirtual.dao.UsuarioDao.existeUnico(UsuarioDao.java:16)
br.com.caelum.lojavirtual.logic.AdminLogic.efetuaLogin(AdminLogic.java:31)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
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.caelum.lojavirtual.loja.DaoInterceptor.intercept(DaoInterceptor.java:18)
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)
Segue abaixo minhas classes:
UsuarioDao.java
import org.hibernate.Query;
import org.hibernate.Session;
import br.com.caelum.lojavirtual.modelo.Usuario;
public class UsuarioDao extends Dao<Usuario> {
public UsuarioDao(Session session) {
super(session, Usuario.class);
}
public Usuario existeUnico(Usuario usuario) {
String hql = "select u from usuario as u where u.login = :login and u.senha = :senha ";
Query query = getSession().createQuery(hql);
query.setParameter("login", usuario.getLogin());
query.setParameter("senha", usuario.getSenha());
return (Usuario) query.uniqueResult();
}
}
DaoFactory.java
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.com.caelum.lojavirtual.modelo.Cd;
import br.com.caelum.lojavirtual.modelo.Musica;
import br.com.caelum.lojavirtual.modelo.Venda;
import br.com.caelum.lojavirtual.util.HibernateUtil;
public class DaoFactory {
private final Session session;
private Transaction transaction;
public DaoFactory() {
session = HibernateUtil.getSession();
}
public void beginTransaction() {
this.transaction = this.session.beginTransaction();
}
public void commit() {
this.transaction.commit();
this.transaction = null;
}
public boolean hasTransaction() {
return this.transaction != null;
}
public void rollback() {
this.transaction.rollback();
this.transaction = null;
}
public void close() {
this.session.close();
}
public UsuarioDao getUsuarioDao() {
return new UsuarioDao(this.session);
}
public Dao<Cd> getCdDao() {
return new Dao<Cd>(this.session, Cd.class);
}
public Dao<Musica> getMusicaDao() {
return new Dao<Musica>(this.session, Musica.class);
}
public Dao<Venda> getVendaDao() {
return new Dao<Venda>(this.session, Venda.class);
}
}
Usuario.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Usuario {
@Id
@GeneratedValue
private Long id;
private String login;
private String senha;
private String role;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public boolean hasRole(String s) {
// role com espaco antes e depois
String role = " " + this.role + " ";
// verifica se tem o role
return role.contains(" " + s + " ");
}
}
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- <property name="hibernate.connection.url">jdbc:mysql://localhost/teste</property> -->
<property name="hibernate.connection.url">jdbc:mysql://localhost/teste</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root1@</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping class="br.com.caelum.lojavirtual.modelo.Usuario"/>
<mapping class="br.com.caelum.lojavirtual.modelo.Cd"/>
<mapping class="br.com.caelum.lojavirtual.modelo.Musica"/>
<mapping class="br.com.caelum.lojavirtual.modelo.Venda"/>
</session-factory>
</hibernate-configuration>
AdminLogic.java //para efetuar o login
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Out;
import org.vraptor.scope.ScopeType;
import br.com.caelum.lojavirtual.dao.DaoFactory;
import br.com.caelum.lojavirtual.dao.UsuarioDao;
import br.com.caelum.lojavirtual.loja.DaoInterceptor;
import br.com.caelum.lojavirtual.modelo.Usuario;
@Component("admin")
@InterceptedBy(DaoInterceptor.class)
public class AdminLogic {
private final DaoFactory daoFactory;
private Usuario usuario;
public AdminLogic(DaoFactory daoFactory) {
this.daoFactory = daoFactory;
}
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;
}
@Out(scope=ScopeType.SESSION)
public Usuario getUsuario() {
return usuario;
}
}
Dao.java
import java.util.List;
import org.hibernate.Session;
public class Dao<T> {
private final Session session;
private final Class classe;
public Dao(Session session, Class classe) {
this.session = session;
this.classe = classe;
}
public void adiciona(T u) {
this.session.save(u);
}
public void remove(T u) {
this.session.delete(u);
}
public void atualiza(T u) {
this.session.merge(u);
}
public List<T> listaTudo() {
return this.session.createCriteria(this.classe).list();
}
public T procura(Long id) {
return (T) session.load(this.classe, id);
}
protected Session getSession() {
return session;
}
}
Sera que alguem pode me dar uma força para saber onde estou errando.
Agradeço desde já a atenção de todos.