Другой вопрос спящего режима...: P
Используя структуру аннотаций Hibernate, у меня есть объект User. Каждый User может иметь коллекцию друзей: Коллекция других User s. Однако мне не удалось выяснить, как создать ассоциацию Many-to-Many в классе User, состоящую из списка User (используя промежуточную таблицу друзей пользователя).
Здесь класс пользователя и его аннотации:
@Entity
@Table(name="tbl_users")
public class User {
@Id
@GeneratedValue
@Column(name="uid")
private Integer uid;
...
@ManyToMany(
cascade={CascadeType.PERSIST, CascadeType.MERGE},
targetEntity=org.beans.User.class
)
@JoinTable(
name="tbl_friends",
[email protected](name="personId"),
[email protected](name="friendId")
)
private List<User> friends;
}
Таблица сопоставления пользователя-друга имеет только два столбца, оба из которых являются внешними ключами столбца uid таблицы tbl_users. Два столбца: personId (которые должны отображаться для текущего пользователя) и friendId (который указывает идентификатор текущего пользователя).
Проблема заключается в том, что поле "друзья" продолжает выдаваться нулевым, даже если я предварительно заполнил таблицу друзей, чтобы все пользователи в системе были друзьями со всеми другими пользователями. Я даже попытался переключить отношение на @OneToMany, и он по-прежнему выходит нулевым (хотя вывод отладки Hibernate показывает запрос SELECT * FROM tbl_friends WHERE personId = ? AND friendId = ?, но больше ничего).
Любые идеи о том, как заполнить этот список? Спасибо!