0

私は 2 つの Entity 、Entity Applicants、Entity JobApplications を持っています。関係は

    //Entity Applicants
    public class AppPers implements Serializable {
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "appPers",fetch = FetchType.EAGER)
    private Collection<JobApplications> jobApplicationsCollection;
    .........................
    }

    //Entity JobApplications
    public class JobApplications implements Serializable {
    @JoinColumn(name = "app_id", referencedColumnName = "APP_ID", insertable = false,         updatable = false)
    @ManyToOne(optional = false,fetch = FetchType.EAGER)
    private AppPers appPers;

だから合併したら

    AppPers ap =em.find(AppPers.class,appId);
    ap.setJobApplicationsCollection(c);
    em.merge(ap);
    em.refresh(ap);

そして実行してみる

    //fetch the newly created list
    List<JobApplications> list  = new ArrayList<JobApplications>();
    list = em.createNamedQuery("JobApplications.findAll").getResultList();
    //list size is 3 in my case
    for( JobApplications ja: list) {
    String a = ja.getAppPers().getSurName();
    }

surName が AppPers の列であるため、NullPointer Exception が発生します。これは、Glassfish を再起動するまで発生し、Null ポインターは発生しません。fetch を Eager に設定しようとしましたが、それでも喜びはありません。何が欠けているのでしょうか

4

1 に答える 1