Я создал две таблицы: Project и Resource. Существуют следующие классы сущностей:
@Entity
@Table(name="project")
public class Project {
@Id
private int projectId;
private String name;
private String createdBy;
.
.
.
}
@Entity
@Table(name="resource")
public class Resource {
@Id
private int resourceId;
private String name;
private String createdBy;
private Set<Project> projects;
@JoinTable(name="project_resources",joinColumns={@JoinColumn(name="project_id")},
inverseJoinColumns={@JoinColumn(name="resource_id")})
public Set<Project> getProjects() {
return projects;
}
public void setProjects(Set<Project> projects) {
this.projects = projects;
}
.
.
}
некоторые значения базы данных:
resource_id, project_id
r-123-abcop, p-qweer033
r-153-adetr, p-qweer033
r-460-uerty, p-qweer033
r-087-xcvbx, p-qweer033
r-askf-44uj, p-euyru85r
r-6yhe-hefn, p-euyru85r
r-er7u-ufgm, p-euyru85r
r-ehw8i-nfm, p-euyru85r
(Нет класса сущностей для таблицы project_resources, таблица Project не будет иметь зависимости таблицы ресурсов, но Resource будет иметь Project, как вы можете видеть из классов)
Теперь, если вы хотите узнать, какие ресурсы присутствуют в проекте, я должен сначала получить все ресурсы, а затем отфильтровать ресурсы по идентификатору проекта. Но если я смогу запросить эту таблицу project_resources, я смогу легко получить эти значения.
Я хочу сгенерировать запрос наподобие
select * from project_resources where project_id = '';
Как заставить класс hibernate понять, как выбрать эту таблицу project_resources? Или какое-нибудь лучшее решение, как получить ресурсы на основе projectId?