Рассмотрим эту схему
Hospital
----------
id
name
email
phone
Department
----------
id
name
email
phone
Relation
----------
relationId
Hospital_Id
Department_id
Здесь each
больница имеет many
отделений.Таким образом, Hospital
имеет отношение OneToMany
к Departments
.Hospital
таблица имеет список больниц.Department
таблица имеет список отделов.Relation
таблица присоединяется к ним.Там нигде не используется внешний ключ.
Теперь рассмотрим эти pojos (для краткости удалены ненужные вещи)
public class Hospital {
...
@OneToMany
@JoinColumn(name="Hospital_ID")
private Set<Relation> relations;
...
}
public class Department{
...
@OneToMany
@JoinColumn(name="Department_ID")
private Set<Relation> relations;
...
}
public class Relation{
...
@Id
@Column(name = "relationId")
private int relationId;
@Column(name = "Hospital_ID")
private int hospitalId;
@Column(name = "Department_ID")
private int departmentId;
...
}
Итак, мой вопрос: как мне получить список (или набор) отделений для любой конкретной больницы?То есть я хочу реализовать этот метод в Hospital
pojo
public Set<Departments> getDepartments() {
// Return set of departments corresponding to this(object) hospital
}
А также, как получить противоположное этому, то есть, как получить соответствующий объект больницы в классе Департамента?