Всем привет. Делаю небольшое веб приложение, с использованием Hibernate. Думал что там всё легко и просто, но как оказалось я ошибался. Вот часть сущностей: Кино
@Entity
@Table(name = "movie")
public class Movie {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
@NotNull
private int id;
@Column(name = "TITLE", nullable = false)
@NotEmpty(message="Не может быть пустым!")
private String title;
@Column(name = "DESCRIPTION", length = 2000)
@JsonView(ViewMovie.HomeView.class)
private String description;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "genre_movie", joinColumns = @JoinColumn(name = "movie_id"), inverseJoinColumns = @JoinColumn(name = "genre_id"))
@JsonView(ViewMovie.HomeView.class)
private Set<Genre> genre = new HashSet<Genre>();
И жанр
@Entity
@Table(name = "genre")
public class Genre {
@Id
@GeneratedValue
@Column(name = "ID")
private long id;
@Column(name = "GENRE_TITLE")
private String title;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "genre_movie", joinColumns = @JoinColumn(name = "genre_id"), inverseJoinColumns = @JoinColumn(name = "movie_id"))
private Set<Movie> movies = new HashSet<Movie>();
Так как fetch=LAZY то в настройках hibernate использую "hibernate.enable_lazy_load_no_trans" = true, как я понимаю это для того, чтобы можно было подгружать ленивую сущность из jsp. Вроде всё хорошо работает, но заметил проблему: КОГДА ПЕРЕХОЖУ НА СТРАНИЦУ ГДЕ НЕ ИСПОЛЬЗУЕТСЯ ПОЛЕ movie.genre то связь genre_movie УДАЛЯЕТСЯ АВТОМАТИЧЕСКИ.
Причём когда меняю lazy на eager то всё работает хорошо.
Из базы данных фильмы беру с помощью
Session session = this.sessionFactory.getCurrentSession();
List<Movie> movies = (List<Movie>) session.createCriteria(Movie.class).add(Restrictions.eq("id", id)).list();
if (!movies.isEmpty()) {
Movie movie = movies.get(0);
жанры таким же образом. В чём может быть проблема?
Поменяйте поле id на тип Long в обоих сущностях, потому что при создании типом int у него уже будет значение 0. Связь типа many to many всегда организуется с помощью третьей таблицы. Скорее всего проблема с id.
Как сложить красиво два массива так чтобы элементы не повторялись?
Есть ли в Java Telegram Bot Api https://githubcom/mohaxspb,метод, который мог бы определить номер, с которого происходит общение в одиночном чате
Вобщем есть пустой проект в IDEA к нему я подключаю swtjar но при попытке запуска приложения выдает ошибку: