Мне нужно отследить отношение M: N с атрибутами, поэтому я использую таблицу ссылок (следуя шаблону в Отображение «многие ко многим» без XML Hibernate ) ... но яне может понять, как запросить эти отношения Членства для законных, но еще не существующих отношений, например, каких-либо Сотрудников , а не в данной Команде (или Предметах, на которые Пользователь еще не предлагал цену)и т. д.).Я работаю над этим в HQL, но я новичок в этом, поэтому я мог бы использовать некоторые рекомендации о том, какой метод работает лучше всего ... или примеры запросов такого рода;)
Для обсуждения,просто предположим, что класс Employees: Team Membership с очень большим набором каждого (слишком велик, чтобы просто войти в средний уровень и выполнить операции набора).
class Membership {
Employee employee
Team team
String other // I need attributes on the relationship
}
class Employee {
Date dateJoinedCompany
String name
static hasMany = [managedTeams:Team, memberships:Membership]
static mappedBy = [managedTeams:"manager"]
}
class Team {
String name
Employee manager
static belongsTo = Employee
static hasMany = [memberships:Membership]
}
Итак, мне нужен запрос, который возвращает сотрудников, не входящих в команду № 2, которые присоединились к компании более месяца назад, или команды, в состав которых сотрудник № 5 не входит, такого рода вещи.лучшая техника - есть ли способ сделать это с помощью критериев?Или какие-либо предложения о том, как наилучшим образом использовать для этого HQL?
Я должен добавить свою текущую мысль, используя HQL и подобрать:
from Team t where t not in (select m.team from Membership m where m.employee = 5)
TIA!