Hibernate - Password() Funktion von MySQL nutzbar?

webmagier

Mitglied
Ich will mit Struts eine Loginfunktion bauen, die mit Hibernate ein Query an MySQL startet. username und password kommen vorher aus der form und sind auch korrekt, aber ich kann hibernate nicht überzeugen die Passwortfunktion zu schlucken. Das hier ist mein Code:

Code:
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session databaseSession = sf.openSession();
Transaction tx = databaseSession.beginTransaction();
Query q = databaseSession.createQuery("from CustomerBean customer where customer.userName = ? AND customer.password = ?");
q.setString(0,loginForm.getUsername());
String pwd = "PASSWORD('"+loginForm.getPassword()+"')";
q.setString(1,pwd);
Collection customers = q.list();
CustomerBean customer=null;
if (customers.iterator().hasNext())
   customer = (CustomerBean)customers.iterator().next();
tx.commit();
databaseSession.close();

Wie mach ich das? Lösungsvorschläge?
 
da hibernate bei setString die Hochkommas selbst drumbaut musst Du die Query folgendermaßen bauen:

Code:
Query q = databaseSession.createQuery("from CustomerBean customer where customer.userName = ? AND customer.password = PASSWORD( ? )");
q.setString(0,loginForm.getUsername());
String pwd = loginForm.getPassword();
q.setString(1,pwd);

So sollte es gehen. Konnte es aber noch nicht ausprobieren.
 
Zurück