Я делаю запрос, в котором мне нужно вернуть пользователя, который также содержит UserConnectors.Мой запрос возвращает два результата вместо одного для одного идентификатора.Это должен быть один результат, но я думаю, что соединение UserConnector, поскольку у пользователя их два, создает в результате двух пользователей, по одному для каждого соединителя пользователя.
Таблицы
Пользователь: IDИМЯ UserConnector: ID, USERID, ДАТА
User.java
@OneToMany(mappedBy="user")
public Set<UserConnector> getUserConnectors() {
return this.userConnectors;
}
/**
* Set the list of Connectors
*/
public void setUserConnectors(Set<UserConnector> userConnectors) {
this.userConnectors = userConnectors;
}
UserConnector.java
@ManyToOne
@JoinColumn(name = "USERID")
public User getUser() {
return this.user;
}
/**
* set users
*/
public void setUser(User user) {
this.user = user;
}
Запрос
Criteria criteria = userRepository.getCritieria();
criteria.createAlias("userConnectors", "uc", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("id", request.getId()));
criteria.add(Restrictions.eq("enabled", new Long("1")));
criteria.add(Restrictions.eq("uc.active", new Long("1")));
List<User> list = userRepository.findByCriteria(criteria);