Я хочу создать запрос Hibernate, который будет возвращать список фильмов, для которых Джеймс Бонд был сыгран актером, которому сейчас более 60 лет. (не берите в голову глупость этого примера)
Я перепробовал много комбинаций с createQuery, но не могу установить условие для объединения.
Кроме того, еще одна цель заключается в том, чтобы запрос возвращал список вместо списка или списка .
Более конкретно, SQL, который я хотел бы запустить, выглядит следующим образом:
SELECT m.* FROM movies m
INNER JOIN movie_actors ma
ON (ma.movie_id = m.id AND ma.role = 'James Bond')
INNER JOIN actors a
ON (a.id = ma.actor_id AND a.age > 60)
Для этого я предполагаю следующую схему таблицы:
CREATE TABLE movies(
id INTEGER NOT NULL,
name NVARCHAR2(100) NOT NULL,
CONSTRAINT pk_movies PRIMARY KEY (id),
);
CREATE TABLE movie_actors (
movie_id INTEGER NOT NULL,
actor_id INTEGER NOT NULL,
role NVARCHAR2(200) NOT NULL,
CONSTRAINT fk_movies_actors_movie_id FOREIGN KEY (movie_id) REFERENCES movies,
CONSTRAINT fk_movies_actors_actor_id FOREIGN KEY (actor_id) REFERENCES actors
);
CREATE TABLE actors (
id INTEGER NOT NULL,
firstname NVARCHAR2(50) NOT NULL,
lastname NVARCHAR2(50) NOT NULL,
age INTEGER NOT NULL,
CONSTRAINT pk_actors PRIMARY KEY (id)
);