循环在添加记录之前抛出异常

时间:2016-04-25 07:23:33

标签: java hibernate loops exception

我尝试使用"用户名"为特定的招聘人员提取jobList。所以一切都运行良好,我可以打印招聘人员用户名,用于循环列表中的工作。但问题是:jobList.add(j)未执行,然后直接抛出hibernate异常。有谁知道问题是什么?

我知道我应该使用适当的查询,但我一直都有例外,我的数据库很小(学校项目),所以现在不重要。

public List<Job> list(String userName) throws AdException {

    try {
        begin();
        Query q = getSession().createQuery("FROM Job");
        ArrayList<Job> list = (ArrayList<Job>) q.list();
        System.out.println("All Jobs: "+ list);

        ArrayList<Job> jobList = new ArrayList<Job>();

        for (Job j : list) {
            System.out.println("job userName is: "+ j.getRecruiter().getUserName());
            if (j.getRecruiter().getUserName().equalsIgnoreCase("userName")){

                jobList.add(j);
                System.out.println("jobList is: "+ jobList);
                return jobList;

            } else {
                continue;
            }

        }

    } catch (HibernateException e) {
        rollback();
        throw new AdException("Could not get jobList for company: " + userName, e);
    }

    return null;
}

1 个答案:

答案 0 :(得分:1)

我认为您不希望userName被引用为String Literal

(E1)+(E2)

而是

if (j.getRecruiter().getUserName().equalsIgnoreCase("userName")){

修改

正如约翰如此善意地提到的那样,你的调用方法也应该检查if (j.getRecruiter().getUserName().equalsIgnoreCase(userName)){ 被退回。