Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf javax.el.PropertyNotFoundException:targetunreachable,';空';外键引用返回null_Jsf_Foreign Keys_Jpa 2.0 - Fatal编程技术网

Jsf javax.el.PropertyNotFoundException:targetunreachable,';空';外键引用返回null

Jsf javax.el.PropertyNotFoundException:targetunreachable,';空';外键引用返回null,jsf,foreign-keys,jpa-2.0,Jsf,Foreign Keys,Jpa 2.0,我知道managedBean有问题,但我不知道是什么问题 当我从jsf页面尝试departmentManagedBean.department.faculty.facultyName时,它会给出一个空指针,如下所示: javax.el.PropertyNotFoundException:/administrator/department/DepartmentRegistration.xhtml@30260 value=“#{departmentRequestBean.department.fac

我知道managedBean有问题,但我不知道是什么问题

当我从jsf页面尝试
departmentManagedBean.department.faculty.facultyName
时,它会给出一个空指针,如下所示:

javax.el.PropertyNotFoundException:/administrator/department/DepartmentRegistration.xhtml@30260 value=“#{departmentRequestBean.department.faculty.facultyName}”:无法访问目标,“null”返回null




value=“#{departmentRequestBean.department.faculty.facultyName}”:无法访问目标,“null”返回null

这基本上意味着以下值之一

  • {departmentRequestBean.department}
  • {departmentRequestBean.department.faculty}
在处理表单提交期间返回
null
。由于您自己明确创建了
部门
,因此这只能意味着
教员
仍然是
空的

要正确修复它,请在
DepartmentRequestBean

private Department department = new Department();


以这种方式在支持bean中初始化department类

public Department getDepartment() {
if(department == null){
department = (Department)super.getInstance(Department.class);
}
return department;
}
如果对象变为null,这将创建一个新的department对象

public class DepartmentSessionBean {
    @PersistenceContext(unitName = "ApplicationPU")
    private EntityManager em;

    public void persist(Department department) {     
        em.persist(department);
    }
}
public class Faculty implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "FacultyID")
    private Integer facultyID;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 255)
    @Column(name = "FacultyName")
    private String facultyName;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "faculty", fetch = FetchType.EAGER)
    private List<Department> departmentList;

    public Faculty() {
    }

    public Faculty(Integer facultyID) {
        this.facultyID = facultyID;
    }

    public Faculty(Integer facultyID, String facultyName) {
        this.facultyID = facultyID;
        this.facultyName = facultyName;
    }

    public Integer getFacultyID() {
        return facultyID;
    }

    public void setFacultyID(Integer facultyID) {
        this.facultyID = facultyID;
    }

    public String getFacultyName() {
        return facultyName;
    }

    public void setFacultyName(String facultyName) {
        this.facultyName = facultyName;
    }

    public List<Department> getDepartmentList() {
        return departmentList;
    }

    public void setDepartmentList(List<Department> departmentList) {
        this.departmentList = departmentList;
    }
}
@ViewScoped public class DepartmentRequestBean {
@EJB
private DepartmentSessionBean departmentSessionBean;
private Department department = new Department();
public Department getDepartment() {
    return department;
}

public void setDepartment(Department department) {
    this.department = department;
}


public void save(){


        departmentSessionBean.persist(department);

}

public DepartmentRequestBean() {
    this.faculty = new Faculty();
}}
private Department department = new Department();
private Department department;

@PostConstruct
public void init() {
    department = new Department();
    department.setFaculty(new Faculty());
}
public Department getDepartment() {
if(department == null){
department = (Department)super.getInstance(Department.class);
}
return department;
}