我在休眠状态下从具有以下列的员工表中进行了选择查询:
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());
}
异常抛出 bcoz 第一条记录 managerid 为空,
然后,我使用了这个查询
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 设置为空,如何获取所有记录?
我必须进行什么设置?