Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Hibernate中选择2个表_Hibernate - Fatal编程技术网

在Hibernate中选择2个表

在Hibernate中选择2个表,hibernate,Hibernate,`@实体 公映{ private Long id; private String title; private String summary; private long duration; private LocalDateTime startDate; private LocalDateTime endDate; private Set<Session> sessions = new HashSet<>(); public Movie() { } public

`@实体 公映{

private Long id;
private String title;
private String summary;
private long duration;
private LocalDateTime startDate;
private LocalDateTime endDate;
private Set<Session> sessions = new HashSet<>();


public Movie() {
}


public Movie(Long id, String title, String summary, long duration, LocalDateTime startDate, LocalDateTime endDate) {
    super();
    this.id = id;
    this.title = title;
    this.summary = summary;
    this.duration = duration;
    this.startDate = startDate;
    this.endDate = endDate;
}


public Movie(String title, String summary, long duration, LocalDateTime startDate, LocalDateTime endDate) {
    super();
    this.title = title;
    this.summary = summary;
    this.duration = duration;
    this.startDate = startDate;
    this.endDate = endDate;
}


@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
    return id;
}


public void setId(Long id) {
    this.id = id;
}

@OneToMany(mappedBy="movie")
public Set<Session> getSessions() {
    return sessions;
}


public void setSessions(Set<Session> sessions) {
    this.sessions = sessions;
}


public String getTitle() {
    return title;
}


public void setTitle(String title) {
    this.title = title;
}


public String getSummary() {
    return summary;
}


public void setSummary(String summary) {
    this.summary = summary;
}


public long getDuration() {
    return duration;
}


public void setDuration(long duration) {
    this.duration = duration;
}


public LocalDateTime getStartDate() {
    return startDate;
}


public void setStartDate(LocalDateTime startDate) {
    this.startDate = startDate;
}


public LocalDateTime getEndDate() {
    return endDate;
}


public void setEndDate(LocalDateTime endDate) {
    this.endDate = endDate;
}
公开课{

private Long id;
private BigDecimal prize;
private LocalDateTime sessionDate;
private Movie movie;
private MovieCinema movieCinema;

public Session() {
}

public Session(Long id, BigDecimal prize, LocalDateTime sessionDate, Movie movie, MovieCinema movieCinema) {
    super();
    this.id = id;
    this.prize = prize;
    this.sessionDate = sessionDate;
    this.movie = movie;
    this.movieCinema = movieCinema;
}

public Session(BigDecimal prize, LocalDateTime sessionDate, Movie movie, MovieCinema movieCinema) {
    this.prize = prize;
    this.sessionDate = sessionDate;
    this.movie = movie;
    this.movieCinema = movieCinema;
}

public Session(BigDecimal prize, LocalDateTime sessionDate, Movie movie) {

    this.prize = prize;
    this.sessionDate = sessionDate;
    this.movie = movie;
}

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public BigDecimal getPrize() {
    return prize;
}

public void setPrize(BigDecimal prize) {
    this.prize = prize;
}

public LocalDateTime getSessionDate() {
    return sessionDate;
}

public void setSessionDate(LocalDateTime sessionDate) {
    this.sessionDate = sessionDate;
}

@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "movieId")
public Movie getMovie() {
    return movie;
}

public void setMovie(Movie movie) {
    this.movie = movie;
}

@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "movieCinemaId")
public MovieCinema getMovieCinema() {
    return movieCinema;
}

public void setMovieCinema(MovieCinema movieCinema) {
    this.movieCinema = movieCinema;
}
}

我有两张桌子

Id |名称|日期|设置

表B Id |日期|表a

我想选择TableB.date>=LocalDateTime.now的所有tableA

我想从TableA中选择*,TableB其中TableB.date>=:now

我想要一个TableA元素列表和TableB的几个元素列表


我解决了这个问题,但没有使用它,我做了这个`公共片段查找会话ByDate(长电影ID,整版页,整版大小){

LocalDateTime date=LocalDateTime.now();
//这是一个很好的例子
String queryString=“从会话s中选择s,其中s.sessionDate>=:date和s.movie.id=:movieId”;
queryString+=“s.sessionDate的订单”;
Query Query=entityManager.createQuery(queryString).setFirstResult(page*size).setMaxResults(size+1);
如果(日期!=null){
query.setParameter(“日期”,日期);
}
if(movieId!=null){
query.setParameter(“movieId”,movieId);
}
List sessions=query.getResultList();
布尔值hasNext=sessions.size()==(size+1);
如果(下一步){
sessions.remove(sessions.size()-1);
}
返回新的SliceImpl(sessions,PageRequest.of(page,size),hasNext);
}`

我问的问题是我想按电影过滤,在我想过滤电影会话的电影列表中

你能给我们展示一下你的实体模型吗?@jorge.munin,你能把你的实体作为代码(而不是图像)发布吗。
private Long id;
private BigDecimal prize;
private LocalDateTime sessionDate;
private Movie movie;
private MovieCinema movieCinema;

public Session() {
}

public Session(Long id, BigDecimal prize, LocalDateTime sessionDate, Movie movie, MovieCinema movieCinema) {
    super();
    this.id = id;
    this.prize = prize;
    this.sessionDate = sessionDate;
    this.movie = movie;
    this.movieCinema = movieCinema;
}

public Session(BigDecimal prize, LocalDateTime sessionDate, Movie movie, MovieCinema movieCinema) {
    this.prize = prize;
    this.sessionDate = sessionDate;
    this.movie = movie;
    this.movieCinema = movieCinema;
}

public Session(BigDecimal prize, LocalDateTime sessionDate, Movie movie) {

    this.prize = prize;
    this.sessionDate = sessionDate;
    this.movie = movie;
}

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public BigDecimal getPrize() {
    return prize;
}

public void setPrize(BigDecimal prize) {
    this.prize = prize;
}

public LocalDateTime getSessionDate() {
    return sessionDate;
}

public void setSessionDate(LocalDateTime sessionDate) {
    this.sessionDate = sessionDate;
}

@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "movieId")
public Movie getMovie() {
    return movie;
}

public void setMovie(Movie movie) {
    this.movie = movie;
}

@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "movieCinemaId")
public MovieCinema getMovieCinema() {
    return movieCinema;
}

public void setMovieCinema(MovieCinema movieCinema) {
    this.movieCinema = movieCinema;
}
    LocalDateTime date = LocalDateTime.now();
    //Esto devuelve la lista de sesiones validas de una pelicula
    String queryString = "SELECT s  from Session s WHERE s.sessionDate >= :date AND s.movie.id = :movieId";

    queryString += " ORDER BY s.sessionDate";

    Query query = entityManager.createQuery(queryString).setFirstResult(page * size).setMaxResults(size + 1);

    if (date != null) {
        query.setParameter("date", date);
    }

    if (movieId != null) {
        query.setParameter("movieId", movieId);
    }


    List<Session> sessions = query.getResultList();

    boolean hasNext = sessions.size() == (size + 1);

    if (hasNext) {
        sessions.remove(sessions.size() - 1);
    }

    return new SliceImpl<>(sessions, PageRequest.of(page, size), hasNext);

}`