Допустим, у меня есть веб-приложение, где пользователи могут подписаться на других пользователей.
В моей базе данных есть таблица User
и таблица Following
.
Таблица Following
имеет только два значения: followUserId и followUserId.
В Java у меня есть класс User. Большинство уроков, которые я вижу, включают один объект, содержащий набор объектов, с которыми он связан. Многие учебные пособия могут описать, как иметь пользователей, которые следуют за этим пользователем, и за множеством пользователей, за которыми следует пользователь. Но для этого потребуется много памяти.
Я имею в виду альтернативную структуру, в которой у объекта User нет информации о следующем. Вместо этого есть объект Follow, который выглядит следующим образом
@Entity
@Table(name = "Following")
public class Following {
RegisteredUser follower;
RegisteredUser followed;
}
и соответствует таблице соединений. Когда я хочу получить всех подписчиков пользователя, я могу сделать запрос для всех объектов «Подписки» с этим пользователем в качестве подписчика.
Мои проблемы:
Таблица подписчиков содержит составной ключ каждого из двух идентификаторов пользователей. Как я могу использовать аннотации для представления этого составного ключа? Аннотация @Id обозначает одну переменную в качестве ключа
Как я могу сделать такой запрос?
Если это актуально, я использую MySQL в качестве базы данных