Другой вопрос спящего режима...: 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 = ?
, но больше ничего).
Любые идеи о том, как заполнить этот список? Спасибо!