我有以下问题,在我的应用程序中我希望有某种登录方式。我有以下代码:(网络上的灵感)
public boolean login(String username, String password)
{
try{
EntityTransaction entr=em.getTransaction();
entr.begin();
TypedQuery<Users> query = em.createQuery("SELECT u FROM Users u WHERE u.login = :login AND u.password = :pass", Users.class);
query.setParameter("login", username);
query.setParameter("pass", password);
try{
Users u = query.getSingleResult();
em.getTransaction().commit();
return true;
}catch(javax.persistence.NoResultException e)
{
return false;
}
}
finally{
em.close();
}
}
当我运行它并尝试登录时,控制台将写下以下消息:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManager.
你能帮帮我吗?我不知道它是什么......
答案 0 :(得分:0)
如果您在finally中关闭em,那么下次调用此方法时它将被关闭。也许你应该尝试在那里结束交易。