Я разрабатывал приложение, используя Spring. Я использую базу данных HSQL и использую пружинные данные JPA для ORM. У меня есть Пользователь и сущность Кино, которые связаны со многими отношениями. В базе данных я создал пользователя, фильм и таблицу UserMovieRelation.
Таблицы базы данных
create table users (
user_id varchar(20) not null,
user_Name varchar(255),
description varchar(255),
PRIMARY KEY (user_id)
);
create table movies (
movie_Id varchar(20) not null,
movie_name varchar(255),
description varchar(255),
movie_Type varchar(255),
language varchar(255),
PRIMARY KEY (movie_Id)
);
CREATE TABLE UserMovieRelation(
user_id varchar(20) NOT NULL,
movie_Id varchar(20) NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (movie_Id) REFERENCES movies(movie_Id),
PRIMARY KEY (user_id, movie_Id)
);
Пользовательский объект
@Entity
@Table(name = "users")
public class User implements Serializable {
----------
@ManyToMany
@JoinTable(name = "UserMovieRelation",
joinColumns = { @JoinColumn(name = "user_id") },
inverseJoinColumns = { @JoinColumn(name = "movie_Id") })
private Set<Movie> movies;
------
}
Объект фильма
@Entity
@Table(name="movies")
public class Movie implements Serializable {
--------
@ManyToMany(mappedBy = "movies")
private Set<User> users;
--------
}
У меня есть два репозитория: UserRepository и MovieRepository соответственно.
В моем классе обслуживания я возвращаю всех пользователей с помощью метода findAll из пружинных данных JPA.
public List<User> getAllUser() {
return userRepository.findAll();
}
Но яне удалось получить сведения о фильме, связанные с пользователем, в таблице UserMovieRelation. Хотя в таблице есть все данные.
USER_ID MOVIE_ID
------- --------
1 1
1 2
Вывод будет выглядеть как
[
{
"userId": "1",
"userName": "default",
"userDesc": "default desc",
"movies": []
}
]
Как видите, детали фильма пустые. Что я делаю не так, как получить детали фильма в выводе?