2016-04-12 14 views
2

Jungs ich mache eine Grid-Bibliothek, die Hibernate und Spring Mvc verwendet, um Daten aus db zu lesen. Ich habe 2 Tabelle Mitarbeiter, die EPMID, EMPNAME, EMPAGE, GEHALT, ADRESSE, department_id (refrences in Tabelle department) und Abteilung department_id die department_id und Namen hat ... hier die Department.javaif-Anweisung, wenn die Spalte in der DB null ist

public class Department { 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 

@Column(name = "department_id") 
private int depId; 

@Column(name = "name") 
private String depName; 

@OneToMany(mappedBy="department",cascade = { CascadeType.ALL }, orphanRemoval=true) 
private List<Employee> employees;} 

Employee.java

public class Employee { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "EMPID") 
private int empId; 

@Column(name = "EMPNAME") 
private String empName; 

@Column(name = "ADDRESS") 
private String empAddress; 

@Column(name = "SALARY") 
private String salary; 

@Column(name = "EMPAGE") 
private int empAge; 

@ManyToOne(cascade={CascadeType.ALL}) 
@JoinColumn(name="department_id") 
private Department department;} 

und die Funktion, die teh Mitarbeiter in Service ergänzt ist

@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false) 
public void addEmployee(String[] list, Employee employee) { 
    employee.setEmpName(list[2]); 
    employee.setEmpAge(Integer.parseInt(list[4])); 
    employee.setEmpAddress(list[6]); 
    employee.setSalary(list[1]); 
    //employee.getDepartment().setDepId(Integer.parseInt(list[3])); 
    Department dept = departmentDao.getDepartment(Integer.parseInt(list[3])); 

    if(dept.equals(null)){ 
     employee.setDepartment(departmentDao.getDepartment(16)); 
    } 
    employee.setDepartment(dept); 

    this.employeeDao.addOrEditEmployee(employee); 
} 

aber bei der Eingabe department_id nicht in der übergeordneten department_id .. eine Nullpointer-Ausnahme gefunden auftritt .. i die department_id festlegen möchten gleich zu 16 statt

Antwort

-1

Jede Klasse in Java java.lang.Object als übergeordnete Klasse hat in der Standardeinstellung. Da die equals-Methode von der Object-Klasse bereitgestellt wird, können Sie sie unter dept Objekt aufrufen.

if (dept.equals(null)) { 
    employee.setDepartment(departmentDao.getDepartment(16)); 
} 

Und null ist kein Objekt in Java. Also das sollte if-Anweisung sein:

if(dept == null) { 
    \* ---- your code goes here --- *\ 
} 
Verwandte Themen