У меня мультибрендовое приложение.
один пользователь может иметь более одного бренда, почти каждый запрос в приложении ограничивает пользователя по его брендам.
Пользователь имеет ManyToMany с брендами.
Например, я хочу вытащить List<Employee>
из БД.
s.createQuery("FROM User user INNER JOIN user.brands brands WHERE brands IN(1,2)");//(1,2) = :brands
В этой ситуации я получу одного и того же пользователя более одного раза, поскольку к нему подключено несколько брендов.
Как можно запросить Бренд, не позволяя повлиять на мои результаты без необходимости различения?
Это пользовательский объект:
public class User {
@Id
@Column(name="USER_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer userId;
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="USERS_BRANDS" , joinColumns = {@JoinColumn(name="USER_ID")},inverseJoinColumns={@JoinColumn(name="BRAND_ID")})
private Collection<Brand> brands;
...other members
...getters and setters
}
Спасибо