@Gabriel_Alencar escreveu:
Pessoal sou novo no mundo Java e como todo iniciante ainda estou colhendo experiencia.
Estou com um problema para realizar uma query com WHERE no Hibernate.
Obs: a conexão mysql funciona perfeitamente, os métodos insert, find, delete e update também funciona perfeitamente bem.
O método em questão é o getLoginByEmail do LoginDao
Meu Hibernate Util:
public class HibernateUtil { public static SessionFactory sessionFactory = null; static { Configuration config = new Configuration(); config.configure(); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); builder.applySettings(config.getProperties()); MetadataSources metadataSources = new MetadataSources(); metadataSources.addAnnotatedClass(Login.class); metadataSources.addAnnotatedClass(Editorial.class); Metadata metadata = metadataSources.buildMetadata(builder.build()); sessionFactory = metadata.buildSessionFactory(); } public static Session getSession(){ Session session = sessionFactory.openSession(); return session; } }
Meu DAO de Login:
public class LoginDao { public void insert(Login dados) { Login user = null; Session session = HibernateUtil.getSession(); Transaction transaction = session.beginTransaction(); try{ session.save(dados); transaction.commit(); } catch (HibernateException e) { e.printStackTrace(); transaction.rollback(); } finally { session.close(); } } public Login find(int id) { Login user = null; Session session = HibernateUtil.getSession(); try{ user = session.load(Login.class,1); } catch (Exception e) { System.out.println(e.getMessage()); } finally { session.close(); } return user; } public void update(Login dados) { Login user = null; Session session = HibernateUtil.getSession(); Transaction transaction = session.beginTransaction(); try{ session.saveOrUpdate(dados); session.flush (); transaction.commit(); } catch (HibernateException e) { e.printStackTrace(); transaction.rollback(); }finally { session.close(); } } public void delete(Login dados) { Login user = null; Session session = HibernateUtil.getSession(); Transaction transaction = session.beginTransaction(); try{ session.delete(dados); session.flush (); transaction.commit(); } catch (HibernateException e) { e.printStackTrace(); transaction.rollback(); }finally { session.close(); } } public Login getLoginByEmail(String email,String senha) { Login user = null; Session session = HibernateUtil.getSession(); Transaction tx; try{ tx = session.beginTransaction (); List<Login> list = session.createQuery (" from usuarios where email = :email AND senha = :senha ",Login.class) .setParameter ("email",email) .setParameter ("senha",senha) .getResultList(); user = list.get (0); tx.commit (); } catch (Exception e) { System.out.println(e.getMessage()); }finally { session.close(); } return user; } }
No Output ele reporta o seguinte (parte que julgo important rs):
Caused by: java.lang.NoSuchMethodError: org.hibernate.Session.createQuery(Ljava/lang/String;Ljava/lang/Class;)Lorg/hibernate/query/Query; at admin.models.login.LoginDao.getLoginByEmail(LoginDao.java:87)
Poderiam me dizer o que estou fazendo de errado?
Obrigado!
Mensagens: 3
Participantes: 2