【问题标题】:select null fields in hibernate在休眠中选择空字段
【发布时间】:2012-10-16 12:23:12
【问题描述】:

我在休眠状态下从具有以下列的员工表中进行了选择查询:

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());

        }

Exception throws bcoz first record managerid is null,

然后,我使用了这个查询

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 设置为 null,如何获取所有记录?

我必须进行什么设置?

【问题讨论】:

    标签: sql oracle hibernate


    【解决方案1】:

    首先,在休眠实体中,表中必须有主键列并且它必须不为空。否则休眠无法处理实体,因为它使用主键处理它们。所以空主键会混淆休眠所以不允许。

    如果您仍然想获取数据,您可以使用 hibernate 触发本机查询。

    原生查询参考:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多