0
我有以下問題,在我的應用程序中我想要某種登錄。我有以下代碼:(這裏的啓示在網絡上)線程「AWT-EventQueue-0」中的異常java.lang.IllegalStateException:嘗試在關閉的EntityManager上執行操作
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.
你能幫助我嗎?我不知道它是什麼...
好的,但是我最後要寫些什麼呢?我終於無法嘗試趕上。到底應該在哪裏? – Aaka
你可以不用最後做try-cach,而且在你的代碼中你完全不需要EntityTransaction,因爲你只是在讀一個read –