次の列を持つ従業員テーブルから休止状態で選択クエリを作成しました。
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 が null であるという例外がスローされます。
次に、このクエリを使用しました
Query query = session.createQuery("FROM Employee em WHERE em.managerid IS NOT NULL AND em.deptid IS NOT NULL");
最初のレコード以外のレコードを取得します。
ID は主キーで、managerid は Employees テーブル (id) フィールドを指す外部キーです。すべての行に ID が存在しますが、一部の行または 1 つの行に managerid が null に設定されています。
私の質問は、最初のレコード managerid が null に設定されている場合でも、すべてのレコードを取得する方法です。
私がしなければならなかった設定は何ですか?