Hi,
Ich hab wiedereinmal Probleme mit Hibernate.
Im Prinzip soll die Methode createUser() einfach nur einen neuen Player in die Datenbank speichern.
Dabei bekomme ich aber immer diese Exception, die ich mir nicht erklären kann, da ich ja gar nichts update???.
die Funktion createUser:
Wisst ihr wo der Fehler liegt?
Falls ihr noch mehr Code braucht, fragen oder einfach anonym das svn-repo checken:
myschool - Revision 74: /
Danke schonmal
Ich hab wiedereinmal Probleme mit Hibernate.
Im Prinzip soll die Methode createUser() einfach nur einen neuen Player in die Datenbank speichern.
Dabei bekomme ich aber immer diese Exception, die ich mir nicht erklären kann, da ich ja gar nichts update???.
Java:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:24)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2403)
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at mySchool.core.Database.createUser(Database.java:78)
die Funktion createUser:
Java:
public static Player getPlayer(String username, String password) {
Session session = InitHibernate.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("select u from mySchool.gameObjects.Player as u where u.name=:username and u.password=:password");
query.setString("username", username);
query.setString("password", password);
boolean b = true;
Player player = null;
if(query.list().size() >= 1){
player = (Player) query.uniqueResult();
}
session.getTransaction().commit();
return player;
}
public static void createUser(String username, String email, String password, Region region) throws UserDoesAlreadyExistException {
if (getPlayer(username, password) == null) {
Session session = InitHibernate.getSessionFactory().getCurrentSession();
session.beginTransaction();
Player p = new Player();
session.save(p);
p.setName(username);
p.setPassword(password);
p.setEmail(email);
p.setRegion(region);
session.getTransaction().commit();
} else {
throw new UserDoesAlreadyExistException();
}
}
Wisst ihr wo der Fehler liegt?
Falls ihr noch mehr Code braucht, fragen oder einfach anonym das svn-repo checken:
myschool - Revision 74: /
Danke schonmal