У меня есть две таблицы, которые находятся в отношении 1: n:
musician
{
id;
...
musician_status_id;
...
}
musician_status{
id;
name;
...
}
Они отображаются в Hibernate:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "musician_status_id", nullable = false)
public MusicianStatus getMusicianStatus() {
return this.musicianStatus;
}
Теперь моя модель БД меняется на n: m.
musician
{
id;
...
...
}
musician_has_status{
musician_id;
status_id;
organisation_id;
...
}
musician_status{
id;
name;
...
}
У меня много запросов и кода, которые ретранслируют старое отображение. Поэтому я хочу, чтобы получатель Hibernate возвращал только один musician_status в зависимости от organisation_id. Мой идентификатор_организации хранится в статической переменной (данные для входа).
Я думал о представлении и перехватчике, чтобы получить только musician_status для определенного значения organisation_id. Я действительно не знаю, как этого добиться в Hibernate ...
Спасибо заранее.
Добавлено:
Новое отображение БД будет выглядеть так:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "musician")
public Set<MusikerHasMusikerStat> getMusicianHasMusicianStatus() {
return this.musikerHasMusicianStatus;
}
Я хочу изменить это на что-то подобное:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "musician")
@Add a Filter or something like that?: where musician_has_status.organisation_id=LoginDat.getOrganisationID()
public MusicianStatus getMusicianStatus() {
//or select the right status here?
return this.musicianStatus;
}