我第一次尝试制作一个 Web 应用程序,我使用了各种教程和任何类型的帮助,但我不明白为什么会发生这种情况。到目前为止一切正常:
我正在尝试在 servlet 之间传输“用户”属性,我通过将其中的一部分作为属性发送(使用 RequestDispatcher 或 HTML 表单)并在数据库中查找其余部分来做到这一点,如下所示:
String user = (String) request.getAttribute("txt");
Users info = (Users) emf.createEntityManager().createNamedQuery("Users.findByUsername").setParameter("username",user).getResultList().get(0);
用户名是唯一键,NamedQuery 的代码是
@NamedQuery(name = "Users.findByUsername", query = "SELECT u FROM Users u WHERE u.username = :username)
我第一次使用它时,它可以工作并且我得到了预期的结果,但是,如果我回到同一个 servlet 或者我在其他 servlet 中再次使用相同的代码,我会得到java.lang.IndexOutOfBoundsExpcetion: Index: 0, Size: 0
如果我在任何时候都没有修改数据库,怎么会发生这种情况?
任何帮助,将不胜感激。