У меня есть две сущности User
и Role
. У них однонаправленное соединение ManyToMany
. Но при вызове списка пользователей по какой-то причине пользователь возвращается несколько раз с несколькими ролями.
Ниже я предоставил код и результат.
Результат
Дебаг
Код с запросами HQL
public List<User> listUsers() {
List resultList = manager.createQuery("SELECT u FROM User u LEFT JOIN FETCH u.roles").getResultList();
return resultList;
}
UPD:
Я нашел это решение:
public List<User> listUsers() {
List resultList = manager.createQuery("SELECT u FROM User u LEFT JOIN FETCH u.roles")
.unwrap(org.hibernate.Query.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.getResultList();
return resultList;
}
Но criteria API
медленный, это не рекомендуется использовать его, и он устарел.
Как мне отобразить одного пользователя с двумя ролями ???