当前位置: 首页 > 知识库问答 >
问题:

在Hibernate中选择2个表

康文昌
2023-03-14

`@实体公共类影片{

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;
}

}'

@Entity

公开课课时{

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;
}

}

我有两张桌子

表A

Id | name | date | Set

表B Id |日期|表A

我想选择TableB. date所在的所有tableA

我想从表格A,表格B中选择*表格B。日期

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

在此输入图像描述

在此输入图像描述

共有1个答案

范侯林
2023-03-14

我解决了,但没有使用我做了这个“公共切片查找SessionsByDate(Long moviId, int page, int size){

    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);

}`

我想问的问题是,我想按电影筛选,在电影列表中,我想筛选这些电影的会话

 类似资料:
  • 问题内容: 嘿,我在PostgreSql中有2个表: 和一些数据: 文件: 更新: 因此,所有更新都指向同一文档,但是所有更新的日期都不同。 我想做的是从文档表中进行选择,但还要包括基于日期的最新更新。 这样的查询应如何显示?这是我目前拥有的,但我列出的是所有更新,而不是我需要的最新更新: 包括; 我在查询中需要这个的原因是我想按更新模板中的日期排序! 编辑:此脚本已大大简化,因此我应该能够创建一

  • 上下文:我有两个表Secret_Agent和secret_mission。两者之间有一种@manytomany的关系,因为可以给许多特工执行相同的秘密任务,而同一个特工可以给许多秘密任务。 表SECRET_AGENT 列SecretAgentId,SecretAgentName 表SECRET_MISSION 列SecretMissionId、SecretMissionName、SecretMis

  • 我的代码是这样的:我想选择两个表中的数据 和myeclipese给出错误消息: 请帮帮我,我测试了一整夜! 我的MainType实体如下所示: 和映射,如下所示:

  • 问题内容: 我们正在构建一个电子商务应用程序。我们正在将JAVA堆栈与Hibernate和Spring框架一起使用。与所有电子商务应用程序一样,我们需要在我们的电子商务应用程序中构建搜索功能。 因此,我们遇到了Hibernate Search 和Apache Solr 。有人可以列出两者的优缺点,以便我们为Enterprise Search选择理想的解决方案吗? 问题答案: Apache Solr

  • 我正在使用Postgres 9.3.5,最近将Hibernate从3.2更新到4.3.11。 因此,我无法运行“选择…更新”查询,而只能运行“选择…”。。对于我来说,“for update”是不够的,因为它返回 无法提取结果集。原因:错误:无法将FOR UPDATE应用于外部联接的可空端 我试图使用的标准如下: 我正在使用以下锁定: 在3.2中:标准。设置锁定模式(锁定模式。升级); 在4.3.1

  • 我想问一下,是否有人只能从表A中选择值。请参阅下面的hibernate代码 现在,它就像从A、B和C中选择值,而且太多了。 谢谢你吉米