我有 4 个实体 MultiPlex、Screen、Screening 和 Movie。我想写2个查询。
根据给定 MultiPlexId 的屏幕名称查找屏幕是否存在。(假设 id 1 的 Multiplex 有 4 个屏幕,Audi-1、Audi-2、Audi-3 和 Audi-4,查询应该能够找到 id 1 的 Multiplex 中是否存在 Audi-2)
查找在给定日期运行给定电影的所有多厅影院(放映有屏幕、电影和日期的参考)
我的实体
电影:-
@Entity
public class Movie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String title;
private double rating;
}
多重:-
@Entity
public class Multiplex {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
@OneToMany(mappedBy = "multiplex", cascade = CascadeType.ALL)
private List<Screen> screens;
}
屏幕:-
@Entity
public class Screen {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
@ManyToOne
private Multiplex multiplex;
}
筛选:-
@Entity
public class Screening {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToOne
private Screen screen;
@OneToOne
private Movie movie;
private LocalDate date;
private LocalTime time;
private float pricePerSeat;
}
对于我尝试的第一个查询
@Query("SELECT m FROM Multiplex m Where m.id = :mId and m.screens.name = :screenName")
public Optional<Multiplex> findScreenByName(@Param("mId") long id, @Param("screenName") String name);
MMTTMM
慕娘9325324
随时随地看视频慕课网APP
相关分类