【发布时间】:2012-10-16 12:23:12
【问题描述】:
我在休眠状态下从具有以下列的员工表中进行了选择查询:
private int id;
private String firstname;
private String lastname;
private String email;
private String phoneno;
private Date hiredate;
private Jobs jobid;
private Integer salary;
private Integer commpct;
private Employee managerid;
private Departments deptid;
在这张桌子上, 第一条记录的 managerid 设置为 null,之后每条记录的 managerid 都设置为第一条记录的employeeid;
当我使用查询从雇员表中选择数据时:("FROM EMPLOYEES") 使用以下代码:
Query query = session.createQuery("FROM Employee");
List<Employee> employees = query.list();
for(Employee employee:employees){
System.out.println("ID=>"+employee.getId()+"\tFirstName=>"+employee.getFirstname()+"\tLastName=>"+employee.getLastname()
+"\temail=>"+employee.getEmail()+"\tPhoneNO=>"+employee.getPhoneno()+"\tHireDate=>"+employee.getHiredate()
+"\tJob=>"+employee.getJobid().getJobtitle()+"\tMax Salary=>"+employee.getJobid().getMaxsalary()
+"\tPresent Salary=>"+employee.getSalary()+"\tCommission %=>"+employee.getCommpct()+"\tManager=>"+employee.getManagerid().getFirstname()+","+employee.getManagerid().getLastname()
+"\tDepartment ID=>"+employee.getDeptid().getName());
}
Exception throws bcoz first record managerid is null,
然后,我使用了这个查询
Query query = session.createQuery("FROM Employee em WHERE em.managerid IS NOT NULL AND em.deptid IS NOT NULL");
我得到了第一条记录以外的记录。
ID 是主键,managerid 是指向员工表 (id) 字段的外键。 所有行都有 id,但有些行/一行的 managerid 设置为 null。
我的问题是,即使第一个记录 managerid 设置为 null,如何获取所有记录?
我必须进行什么设置?
【问题讨论】: