我想提前下發展搜索一個簡單的頁面中,用戶可以與以下任何字段Hibernate Search的標準
1) Student Roll no
2) Student First name
3) Student Last name
4) Student date of birth
所有字段都在StudentInformation持久化類中定義的搜索。
StudentInformation.java
Public Class StudentInformation {
private long rollNo;
private String firstName;
private String lastName;
private Date dateOfBirth;
//getter and setters
}
我已創建在我所定義正在被由用戶輸入
advanceSearchVo.setRollNo
advanceSearchVo.setFirstName
advanceSearchVo.setLastName
advanceSearchVo.setDateOfBirth
我在這裏變量的值的對象(AdvanceSearchVo.java)將VO對象傳遞給DAO層。
List<StudentInformation> getAllSearchRecords = service.getAdavanceSearchRecords(advanceSearchVo);
根據輸入的值「getAllSearchRecords」存儲從DB獲取的所有結果。
在DAO
@Override
public List<StudentInformation> getAdavanceSearchRecords(AdvanceSearchVo advanceSearchVo) {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(PersonInfoMasterDomain.class);
if(advanceSearchVo.getRollNo()!=null){
criteria.add(Restrictions.eq("rollNo",advanceSearchVo.getRollNo()));
}
if(advanceSearchVo.getFirstName()!=null){
criteria.add(Restrictions.eq("firstName",advanceSearchVo.getFirstName()));
}
if(advanceSearchVo.getLastName()!=null){
criteria.add(Restrictions.eq("lastName",advanceSearchVo.getLastName()));
}
if(advanceSearchVo.getDateOfBirth()!=null){
criteria.add(Restrictions.eq("dateOfBirth",advanceSearchVo.getDateOfBirth()));
}
}
當我rollno的基礎上,搜索(僅指定一個條件),我收到的記錄。當用戶輸入所有信息,即rollno,firstname,lastname和dob或用戶輸入rollno以外的任何字段時,我沒有收到記錄。
有人可以告訴我我要去哪裏嗎?