Unfetched Attribute Access error

Начну сначала, есть таблица в которой, есть исторические данные по компаниям. В этой таблице есть start_date, и задача такова, что нужно фильтровать все последние по start_date записи. Не понял, как можно это сделать через JPQL, и в итоге выполнил все в нативном запросе через EntityManager

Сам запрос

SELECT start_date, end_date, do3.rfo_id, do3.pm_id, do3.rm_id, do3.id, do3.category, do3.enlistment_flag, do3.is_constaccompan, do3.lang, do3.period, pass_method, do3.agreement_kg, do3.work_state, agreement_kind, dt_consult, scheme, do3.upd_kind, dt_confirm, dt_consult_fact, do3.enroll1_state, enroll1_plan_dt, enroll1_fact_dt, stuff, do3.head_id FROM (
SELECT *,
RANK() OVER (PARTITION BY rfo_id ORDER BY start_date DESC) dest_rank
FROM dzp_org_main dom
) do3
join dzp_org do2 on do3.rfo_id = do2.rfo_id
join dzp_upd_kind duk on do3.upd_kind = duk.upd_kind
join dzp_work_state dws on dws.work_state = do3.work_state
join dzp_pm dp on dp.id = do3.pm_id
join dzp_period dp2 on dp2.period = do3.period
join dzp_agreement_kg dak on dak.agreement_kg = do3.agreement_kg
join dzp_enroll1_state des on des.enroll1_state = do3.enroll1_state
join dzp_lang dl
where do3.dest_rank = 1

В сервисе беру список записей, и через setItem CollectionContainer устанавливаю записи, но в итоге выходит такая ошибка

Ошибка

image

Есть две сущности, DzpOrgMain(Является историчной) и DzpOrg(Хранит информацию о компаниях), в представлении DzpOrgMain есть два атрибута, ссылающегося на DzpOrg rfo и head.
Основная сущность

DzpOrgMain
Table(name = "dzp_org_main")
Entity(name = "untitled1_DzpOrgMain")

public class DzpOrgMain extends BaseGenericIdEntity<Double> {
    private static final long serialVersionUID = -6262400442403902693L;

    Id
    Column(name = "id", nullable = false)
    NotNull
    protected Double c_id;


    Override
    public Double getId() {
        return c_id;
    }

    @Override
    public void setId(Double id) {
        this.c_id = id;
    }


    @JoinColumn(name = "agreement_kg")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpAgreementKg agreementKg;

    @JoinColumn(name = "agreement_kind")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpAgreementKind agreementKind;

    @JoinColumn(name = "category")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpCategory category;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dt_confirm")
    private Date dtConfirm;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dt_consult")
    private Date dtConsult;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dt_consult_fact")
    private Date dtConsultFact;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "end_date")
    private Date endDate;

    @Column(name = "enlistment_flag")
    private Double enlistmentFlag;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "enroll1_fact_dt")
    private Date enroll1FactDt;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "enroll1_plan_dt")
    private Date enroll1PlanDt;

    @JoinColumn(name = "enroll1_state")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpEnrollState enroll1State;

    @JoinColumn(name = "head_id")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpOrg head;

    @Column(name = "is_constaccompan", length = 50)
    private String isConstaccompan;

    @JoinColumn(name = "lang")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpLang lang;

    @JoinColumn(name = "pass_method")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpPassMethod passMethod;

    @JoinColumn(name = "period")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpPeriod period;

    @JoinColumn(name = "pm_id")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpPm pm;

    @JoinColumn(name = "rfo_id")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpOrg rfo;

    @JoinColumn(name = "rm_id")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpRm rm;

    @JoinColumn(name = "scheme")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpScheme scheme;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "start_date")
    private Date startDate;

    @Column(name = "stuff", precision = 131089, scale = 0)
    private BigDecimal stuff;

    @JoinColumn(name = "upd_kind")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpUpdKind updKind;

    @JoinColumn(name = "work_state")
    @ManyToOne(fetch = FetchType.LAZY)
    private DzpWorkState workState;

    public void setPm(DzpPm pm) {
        this.pm = pm;
    }

    public DzpPm getPm() {
        return pm;
    }

    public void setRfo(DzpOrg rfo) {
        this.rfo = rfo;
    }

    public DzpOrg getRfo() {
        return rfo;
    }

    public void setRm(DzpRm rm) {
        this.rm = rm;
    }

    public DzpRm getRm() {
        return rm;
    }

    public void setScheme(DzpScheme scheme) {
        this.scheme = scheme;
    }

    public DzpScheme getScheme() {
        return scheme;
    }

    public void setUpdKind(DzpUpdKind updKind) {
        this.updKind = updKind;
    }

    public DzpUpdKind getUpdKind() {
        return updKind;
    }

    public void setWorkState(DzpWorkState workState) {
        this.workState = workState;
    }

    public DzpWorkState getWorkState() {
        return workState;
    }

    public void setPeriod(DzpPeriod period) {
        this.period = period;
    }

    public DzpPeriod getPeriod() {
        return period;
    }

    public void setPassMethod(DzpPassMethod passMethod) {
        this.passMethod = passMethod;
    }

    public DzpPassMethod getPassMethod() {
        return passMethod;
    }

    public void setLang(DzpLang lang) {
        this.lang = lang;
    }

    public DzpLang getLang() {
        return lang;
    }

    public void setHead(DzpOrg head) {
        this.head = head;
    }

    public DzpOrg getHead() {
        return head;
    }

    public void setEnroll1State(DzpEnrollState enroll1State) {
        this.enroll1State = enroll1State;
    }

    public DzpEnrollState getEnroll1State() {
        return enroll1State;
    }

    public void setCategory(DzpCategory category) {
        this.category = category;
    }

    public DzpCategory getCategory() {
        return category;
    }

    public void setAgreementKind(DzpAgreementKind agreementKind) {
        this.agreementKind = agreementKind;
    }

    public DzpAgreementKind getAgreementKind() {
        return agreementKind;
    }

    public void setAgreementKg(DzpAgreementKg agreementKg) {
        this.agreementKg = agreementKg;
    }

    public DzpAgreementKg getAgreementKg() {
        return agreementKg;
    }

    public BigDecimal getStuff() {
        return stuff;
    }

    public void setStuff(BigDecimal stuff) {
        this.stuff = stuff;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public String getIsConstaccompan() {
        return isConstaccompan;
    }

    public void setIsConstaccompan(String isConstaccompan) {
        this.isConstaccompan = isConstaccompan;
    }


    public Date getEnroll1PlanDt() {
        return enroll1PlanDt;
    }

    public void setEnroll1PlanDt(Date enroll1PlanDt) {
        this.enroll1PlanDt = enroll1PlanDt;
    }

    public Date getEnroll1FactDt() {
        return enroll1FactDt;
    }

    public void setEnroll1FactDt(Date enroll1FactDt) {
        this.enroll1FactDt = enroll1FactDt;
    }

    public Double getEnlistmentFlag() {
        return enlistmentFlag;
    }

    public void setEnlistmentFlag(Double enlistmentFlag) {
        this.enlistmentFlag = enlistmentFlag;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getDtConsultFact() {
        return dtConsultFact;
    }

    public void setDtConsultFact(Date dtConsultFact) {
        this.dtConsultFact = dtConsultFact;
    }

    public Date getDtConsult() {
        return dtConsult;
    }

    public void setDtConsult(Date dtConsult) {
        this.dtConsult = dtConsult;
    }

    public Date getDtConfirm() {
        return dtConfirm;
    }

    public void setDtConfirm(Date dtConfirm) {
        this.dtConfirm = dtConfirm;
    }

}
DzpOrg
@Table(name = "dzp_org")
@Entity(name = "untitled1_DzpOrg")
@NamePattern("%s %s|bin,orgName")
public class DzpOrg extends BaseGenericIdEntity<Double> {
    private static final long serialVersionUID = -5311387108462909819L;

    @Id
    @Column(name = "rfo_id", nullable = false)
    @NotNull
    protected Double rfo_id;

    @Column(name = "bin", length = 100)
    private String bin;
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dateclose")
    private Date dateclose;
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "datesign")
    private Date datesign;
    @Column(name = "head")
    private Double head;
    @Column(name = "head_id")
    private Double head1;
    @Column(name = "org_name", length = 3000)
    private String orgName;
    @Column(name = "region", length = 200)
    private String region;
    @Column(name = "town", length = 2000)
    private String town;

    public String getTown() {
        return town;
    }

    public void setTown(String town) {
        this.town = town;
    }

    @Override
    public Double getId() {
        return rfo_id;
    }

    @Override
    public void setId(Double id) {
        this.rfo_id = id;
    }

    public Double getRfo_id() {
        return rfo_id;
    }

    public void setRfo_id(Double rfo_id) {
        this.rfo_id = rfo_id;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public String getOrgName() {
        return orgName;
    }

    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }

    public Double getHead1() {
        return head1;
    }

    public void setHead1(Double head1) {
        this.head1 = head1;
    }

    public Double getHead() {
        return head;
    }

    public void setHead(Double head) {
        this.head = head;
    }

    public Date getDatesign() {
        return datesign;
    }

    public void setDatesign(Date datesign) {
        this.datesign = datesign;
    }

    public Date getDateclose() {
        return dateclose;
    }

    public void setDateclose(Date dateclose) {
        this.dateclose = dateclose;
    }

    public String getBin() {
        return bin;
    }

    public void setBin(String bin) {
        this.bin = bin;
    }
}

Остальные атрибуты подтягиваются, а rfo нет. Подскажите в чем проблема, а также можно будет этот запрос трансформировать в JPQL