以下是调用查询的方法:
public void LogIn() {
Query query = null;
session.beginTransaction();
query = session
.createQuery(" from UserModel where userName = :username and passwd = :password");
query.setString("username", getUserVO().getUserName());
query.setString("password", getUserVO().getPasswd());
this.getUserVO().DataRowMapper((List<UserModel>) query.list());
session.getTransaction().commit();
session.close();
}
@Override
public void DataRowMapper(List<?> list) {
Iterator<UserModel> i = (Iterator<UserModel>) list.iterator();
while (i.hasNext()) {
this.setUserID(i.next().getUserID());
this.setUserName(i.next().getUserName());
}
现在的问题是,当我运行调试器时,我看到 i.hasNext() 具有正确的值,但我仍然不断收到 NoElementException。我看到的另一件令人惊讶的事情是,以前我能够在控制台上打印用户 ID,但只有用户 ID,其余部分为空,但在我开始收到此错误后不久。数据库完全没有问题。我 100% 确信我得到了正确的结果,因为我在调试器中看到了它,但由于某种原因,我无法在正常模式下克服这个错误。UserModel 类是一个简单的 POJO,我在那里使用 Hibernate Annotations。
我将 RAD 8 与 Websphere 8.0 一起使用。有带有 Hibernate 和 Primefaces 的 JSF 库。还有 Spring 库,但到目前为止我还没有使用过它们。任何帮助将不胜感激。