我已经从具有以下列的员工表中在Hibernate中进行了选择:
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设置为第一个记录员工;
当我使用查询从员工表中选择数据时:("来自员工")使用以下代码:
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 first Record ManagerID为null,
然后,我使用了此查询
Query query = session.createQuery("FROM Employee em WHERE em.managerid IS NOT NULL AND em.deptid IS NOT NULL");
我获得了唱片以外的记录。
ID是primarykey,ManagerID是指向员工表(ID)字段的外键。所有行都有ID,但是一些行/一行将ManagerID设置为null。
我的问题是如何获取所有记录,即使将第一个记录管理器设置为null?
我必须制作什么设置?
首先,在冬眠实体中,必须在表&amp;它必须不是零。Hibernate无法处理实体,因为它使用主键处理它们。因此,无效的主键使冬眠混淆,因此不允许。
如果您想获取数据,则可以使用Hibernate发射本机查询。
本机查询参考:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html