在休眠状态中选择无效字段



我已经从具有以下列的员工表中在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

最新更新