Hibernate: запрос списка объектов в отношении один-ко-многим - PullRequest
0 голосов
/ 30 мая 2018

У меня есть следующие отношения один-ко-многим между пользователем и несколькими TvShows:

@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id", updatable = false, nullable = false)
private int userId;

@OneToMany(mappedBy = "tvShowId", fetch = FetchType.EAGER)
private List<TvShow> favourites;
}

где TvShow.java:

@Entity
@Table(name = "tvshows")
public class TvShow {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private int tvShowId;

@OneToMany(mappedBy = "seasonId", fetch = FetchType.EAGER)
private List<Season> seasons;
}

Я хочу метод, который бывернуть список, содержащий любимые телепередачи, когда дан userId.

Пока у меня есть:

@Query("SELECT t FROM TvShow t WHERE t.id = :userId")
public List<TvShow> getFavourites(@Param("userId") int userId);

, но это просто возвращает TvShow, который имеет тот же Id, что и userId, который яve передан в качестве параметра.

База данных полностью сгенерирована Hibernate и выглядит следующим образом: введите описание изображения здесь

Я знаю, что это должен быть простой запрос, но яЯ в растерянности!

1 Ответ

0 голосов
/ 30 мая 2018

У вас есть как минимум пара проблем в вашем коде.

Во-первых, вы не определяете отношение в другом объекте.То есть вы должны сообщить телешоу о пользователе, если вы собираетесь смоделировать отношения между сущностями:

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="user_id", nullable=false)
private User user;

Следующее относится к использованию mappedBy.Вы должны определить имя свойства java, с которым сопоставляется набор, следующим образом:

@OneToMany(mappedBy = "user", fetch = FetchType.EAGER)
private List<TvShow> favourites;
}

Здесь user - это свойство, которое мы отобразили на предыдущем шаге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...