tags:

views:

48

answers:

1

I made a class called SpecializationBean which has two private fields:

private ArrayList<SelectItem> specializationItems= new ArrayList<SelectItem>();
private String specializationName;

I have ofcourse a getter and setter for those two.

and a buildSpecializationList method which builds the specializationItems list: (I call this method in the getter):

public void buildSpecializationList(){
    List<Object[]> specializations = null;

    try{
        Session mySession = HibernateUtil.getAdmSessionFactory().getCurrentSession();
        Transaction transaction = mySession.beginTransaction();
        String sql = "SELECT  J_Specialization_ID, Specialization_Name_Ar FROM J_Specialization WHERE J_Department_ID = '1000001'";
        Query query = mySession.createSQLQuery(sql).addScalar("id", Hibernate.LONG).addScalar("name", Hibernate.STRING);
        specializations = query.list();

    }
    catch(Exception e){
        e.printStackTrace();
    }
    this.specializationItems = new ArrayList<SelectItem>(90);
    for(Object[] sp: specializations ){
        this.specializationItems.add(new SelectItem(sp[0],(String) sp[1]));
    }

}

The problem is that I get a null pointer exception which shows that the list specializations (defined in the buildSpecializationList()) is null. I have tried the query myself on the table and it returns a result. I also tried HQL query (istead):

String sqlQuery = "Select JSpecializationId, specializationNameAr FROM JSpecializationWHERE JDepartmentId = '1000001'";
Query q = mySession.createQuery(sqlQuery);

But still, I get a null pointer exception which shows that the query returns me null result. Do you have any suggestions?

A: 

For anyone who encounters this problem using Hibernate ...... creating a new class and rewriting the whole thing may actually solve the problem!!!

Saher