0
我從員工表休眠做出選擇查詢了以下欄目:選擇休眠空字段
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;
在該表中, 第一個記錄有經理ID設置爲NULL,之後每一條記錄經理ID設爲首先記錄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第一記錄經理ID爲空,
然後,我用此查詢
Query query = session.createQuery("FROM Employee em WHERE em.managerid IS NOT NULL AND em.deptid IS NOT NULL");
我得到第一條記錄以外的記錄。
ID是主鍵,managerid是指向Employees Table(id)字段的外鍵。 所有行都存在id,但某些行/一行將managerid設置爲null。
我的問題是如何獲得所有記錄,即使第一條記錄managerid設置爲空?我不得不做什麼設置?
我已編輯問題。請看看它。 –
哦,好的。這是hibernate中內部與外部連接的經典案例。在這種情況下,你的答案在這篇文章中:http://stackoverflow.com/questions/1525098/hibernate-default-joining-for-nullable-many-to-one –