Извлечение данных из сопоставления многие-к-одному / один-ко-многим - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть 2 таблицы:

Таблица плана

enter image description here

Таблица покрытия плана

enter image description here

Я хочу получить доступ ко всему описанию покрытия, используя код плана и отобразить его на моей странице jsp.

Это мой код.

Plan.java

@Entity
@Table(name="plan")
public class Plan {
    /....

    @OneToMany(targetEntity=PlanCoverage.class, mappedBy="plan",cascade=CascadeType.ALL, fetch = FetchType.LAZY)
    private List<PlanCoverage> planCoverage;

    public List<PlanCoverage> getPlanCoverage() {
        return planCoverage;
    }

    public void setPlanCoverage(List<PlanCoverage> planCoverage) {
        this.planCoverage = planCoverage;
    }

    private String coverage_description;

    public String getCoverage_description() {
        return coverage_description;
    }

}

PlanCoverage.java

@Entity
@Table(name="plan_coverage")
public class PlanCoverage {

    @ManyToOne()
    @JoinColumn(name="plan_code", referencedColumnName = "plan_code",insertable=false, updatable=false)
    private Plan plan;

    public Plan getPlan() {
        return plan;
    }

    public void setPlan(Plan plan) {
        this.plan = plan;
    }

}

Большое спасибо за вашу помощь !!!

1 Ответ

0 голосов
/ 24 сентября 2018

Вы можете использовать выборку объединения, чтобы выбрать данные из двух таблиц. Таблица плана имеет связь @OneToMany с сущностью Plan Coverage. Таким образом, вы можете написать запрос hql выборки соединения следующим образом.

 String hql = "select p from Plan p join fetch p.planCoverage where p.planCode=:code";
   List<Plan> plans = this.sf.getCurrentSession().createQuery(hql).setParameter("code",plan_code).list();

Применить цикл foreach и получитьPlanCoverage сущность converage_description одна за другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...