Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaSpring/Hibernate:NullpointException on on using criteria.list()_Java_Spring_Hibernate_Criteria - Fatal编程技术网

JavaSpring/Hibernate:NullpointException on on using criteria.list()

JavaSpring/Hibernate:NullpointException on on using criteria.list(),java,spring,hibernate,criteria,Java,Spring,Hibernate,Criteria,这是我的VO: 使用标准后,我得到NullPointerException EmployeeVO.java @Entity @Table(name="EMPLOYEES") public class EmployeeVO { @Id @Column(name="employee_id") @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer employee_id; private String first

这是我的VO:

使用
标准后,我得到
NullPointerException

EmployeeVO.java

@Entity
@Table(name="EMPLOYEES")

public class EmployeeVO {

@Id

@Column(name="employee_id")

@GeneratedValue(strategy=GenerationType.IDENTITY)

private Integer employee_id;

private String first_name;

private String last_name;

private String job_id;

private String phone_number;

private Integer salary;

@Column(nullable=true, name="manager_id")

private Integer manager_id;

@Column(nullable=true, name="user_id")

private Integer user_id;

private Integer department_id;

@OneToOne

@JoinColumn(name="department_id", referencedColumnName="department_id", insertable=false, updatable=false)

private DepartmentVO department;

//getters and setters

@Override
public String toString() {
    return "EmployeeVO [employee_id=" + employee_id + ", first_name=" + first_name + ", last_name=" + last_name
            + ", job_id=" + job_id + ", phone_number=" + phone_number + ", salary=" + salary + ", manager_id="
            + manager_id + ", user_id=" + user_id + ", department_id=" + department_id + ", department="
            + department + "]";
}
}

DAOImpl:

@Override
public List<EmployeeVO> getEmployeeList(SearchForm searchForm) {
    logger.info("SearchForm Detail :: "+searchForm);
    Session session = this.sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(EmployeeVO.class);
    criteria.setProjection(Projections.projectionList());
    if (null != searchForm.getOpt() || !"".equals(searchForm.getOpt())) {
        criteria.add(Restrictions.like(searchForm.getOpt(), searchForm.getKeyword()));
    }
    if (null != searchForm.getMaxSalary()) {
        criteria.add(Restrictions.lt("salary", searchForm.getMaxSalary()));         
    }
    if (null != searchForm.getMinSalary()) {
        criteria.add(Restrictions.gt("salary", searchForm.getMinSalary()));
    }
    if (null != searchForm.getOrderBy() || !"".equals(searchForm.getOrderBy())) {
        if ("asc".equals(searchForm.getOrderBy())) {
            criteria.addOrder(Order.asc(searchForm.getSort()));
        } else if ("desc".equals(searchForm.getOrderBy())) {
            criteria.addOrder(Order.desc(searchForm.getSort()));
        }
    }
    criteria.setFirstResult((searchForm.getPageNo()-1)*searchForm.getDisplay());
    criteria.setMaxResults(searchForm.getDisplay());
    List<EmployeeVO> employeeList = criteria.list();

    logger.info("Employee List Size :: "+employeeList.size());
    return employeeList;
}
@覆盖
公共列表getEmployeeList(搜索表单搜索表单){
logger.info(“搜索表单详细信息::”+搜索表单);
会话会话=this.sessionFactory.getCurrentSession();
条件=session.createCriteria(EmployeeVO.class);
criteria.setProjection(Projections.projectionList());
if(null!=searchForm.getOpt()| |!“”.equals(searchForm.getOpt()){
criteria.add(Restrictions.like(searchForm.getOpt()、searchForm.getKeyword());
}
if(null!=searchForm.getMaxSalary()){
添加(Restrictions.lt(“salary”,searchForm.getMaxSalary());
}
if(null!=searchForm.getMinSalary()){
添加(Restrictions.gt(“salary”,searchForm.getMinSalary());
}
if(null!=searchForm.getOrderBy()| |!“”.equals(searchForm.getOrderBy()){
if(“asc”.equals(searchForm.getOrderBy())){
criteria.addOrder(Order.asc(searchForm.getSort());
}else if(“desc”.equals(searchForm.getOrderBy())){
criteria.addOrder(Order.desc(searchForm.getSort());
}
}
criteria.setFirstResult((searchForm.getPageNo()-1)*searchForm.getDisplay());
setMaxResults(searchForm.getDisplay());
List employeeList=criteria.List();
logger.info(“员工列表大小::”+employeeList.Size());
返回员工名单;
}
有人知道为什么criteria.list()抛出
NullPointException


当我使用query.list()时还可以,但在我将其更改为criteria后,出现了错误。

如果要在criteria中编写查询,请这样编写查询

public List<EmployeeVO> getEmployeeList(SearchForm searchForm) {
logger.info("SearchForm Detail :: "+searchForm);
private String first_name;
private String last_name;
ProjectionList projectionList = Projections.projectionList();
projectionList .add(Projection.property("first_name"),"first_name");
projectionList .add(Projection.property("middle_name"),"middle_name");
projectionList .add(Projection.property("last_name"),"last_name");

Session session = this.sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(EmployeeVO.class);
criteria.setProjection(projectionList);
if (null != searchForm.getOpt() || !"".equals(searchForm.getOpt())) {
    criteria.add(Restrictions.like(searchForm.getOpt(), searchForm.getKeyword()));
}
if (null != searchForm.getMaxSalary()) {
    criteria.add(Restrictions.lt("salary", searchForm.getMaxSalary()));         
}
if (null != searchForm.getMinSalary()) {
    criteria.add(Restrictions.gt("salary", searchForm.getMinSalary()));
}
if (null != searchForm.getOrderBy() || !"".equals(searchForm.getOrderBy())) {
    if ("asc".equals(searchForm.getOrderBy())) {
        criteria.addOrder(Order.asc(searchForm.getSort()));
    } else if ("desc".equals(searchForm.getOrderBy())) {
        criteria.addOrder(Order.desc(searchForm.getSort()));
    }
}
criteria.setFirstResult((searchForm.getPageNo()-1)*searchForm.getDisplay());
criteria.setMaxResults(searchForm.getDisplay());
List<EmployeeVO> employeeList = criteria.list();

logger.info("Employee List Size :: "+employeeList.size());
return employeeList;   }
public List getEmployeeList(SearchForm SearchForm){
logger.info(“搜索表单详细信息::”+搜索表单);
私有字符串名;
私有字符串姓氏;
ProjectionList ProjectionList=Projections.ProjectionList();
projectionList.add(Projection.property(“first_name”),“first_name”);
projectionList.add(Projection.property(“中间名”),“中间名”);
projectionList.add(Projection.property(“姓氏”),“姓氏”);
会话会话=this.sessionFactory.getCurrentSession();
条件=session.createCriteria(EmployeeVO.class);
标准:setProjection(投影列表);
if(null!=searchForm.getOpt()| |!“”.equals(searchForm.getOpt()){
criteria.add(Restrictions.like(searchForm.getOpt()、searchForm.getKeyword());
}
if(null!=searchForm.getMaxSalary()){
添加(Restrictions.lt(“salary”,searchForm.getMaxSalary());
}
if(null!=searchForm.getMinSalary()){
添加(Restrictions.gt(“salary”,searchForm.getMinSalary());
}
if(null!=searchForm.getOrderBy()| |!“”.equals(searchForm.getOrderBy()){
if(“asc”.equals(searchForm.getOrderBy())){
criteria.addOrder(Order.asc(searchForm.getSort());
}else if(“desc”.equals(searchForm.getOrderBy())){
criteria.addOrder(Order.desc(searchForm.getSort());
}
}
criteria.setFirstResult((searchForm.getPageNo()-1)*searchForm.getDisplay());
setMaxResults(searchForm.getDisplay());
List employeeList=criteria.List();
logger.info(“员工列表大小::”+employeeList.Size());
返回employeeList;}
请参见