JavaSpring/Hibernate:NullpointException on on using criteria.list()
这是我的VO: 使用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
标准后,我得到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;}
请参见