我尝试使用"用户名"为特定的招聘人员提取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;
}
答案 0 :(得分:1)
我认为您不希望userName被引用为String Literal
(E1)+(E2)
而是
if (j.getRecruiter().getUserName().equalsIgnoreCase("userName")){
修改强>
正如约翰如此善意地提到的那样,你的调用方法也应该检查if (j.getRecruiter().getUserName().equalsIgnoreCase(userName)){
被退回。