伙计们,我正在制作一个使用 hibernate 和 spring mvc 从 db 读取数据的网格库。我有 2 个员工表,其中有 EPMID、EMPNAME、EMPAGE、SALARY、ADDRESS、department_id(部门表中对 department_id 的引用)和有 department_id 和名称的部门...这里是 Department.java
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;}
员工.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;}
以及在服务中添加员工的功能
@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);
}
但是当输入 department_id 在父 department_id 中找不到时.. 发生空指针异常.. 我想将 department_id 设置为 16 而不是
最佳答案
默认情况下,Java 中的每个类都有 java.lang.Object
作为其父类(super class)。由于 equals
方法是由 Object 类提供的,您可以在 dept
对象上调用它。
if (dept.equals(null)) {
employee.setDepartment(departmentDao.getDepartment(16));
}
null 不是 Java 中的对象。所以 if 语句应该是:
if(dept == null) {
\* ---- your code goes here --- *\
}
关于java - 数据库中的列为空时的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567020/