亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

存在的 JPQL 子查詢

存在的 JPQL 子查詢

冉冉說 2021-11-03 10:34:52
我目前正在開發一個 SpringBoot 應用程序,該應用程序允許用戶在特定餐廳預訂餐桌。用戶可以根據各種喜好過濾餐廳。其中之一是他們提供的食物類型。餐廳類有一個食物列表作為屬性,如下所示。package entities;import lombok.Data;import lombok.NoArgsConstructor;import lombok.NonNull;import javax.persistence.*;import java.util.ArrayList;import java.util.List;@Data@NoArgsConstructor@Entity(name = "Restaurant")public class Restaurant extends User{@Column(name = "name", unique=true, nullable = false)@NonNullprivate String name;@Column(name = "rut", nullable = false)@NonNullprivate String RUT;@Column(name = "address")private String address;@Column(name = "phone")private Long phoneNumber;@Column(name = "max_capacity", nullable = false)@NonNullprivate Integer maxCapacity;@ManyToOne@JoinColumn(name = "neighbourhood", nullable = false)@NonNullprivate Neighbourhood neighbourhood;@ManyToMany(fetch=FetchType.EAGER)private List<Food> foods = new ArrayList<>();    public Restaurant(String email, String username, String password, String     name, String RUT, Integer maxCapacity, Neighbourhood neighbourhood) {    super(email, username, password);    this.name = name;    this.RUT = RUT;    this.maxCapacity = maxCapacity;    this.neighbourhood = neighbourhood;    }}
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

您需要在子查詢之外使用r2而不是r


@Query("SELECT r2 FROM Restaurant r2 

   WHERE EXISTS 

  (SELECT r, COUNT(r) FROM 

   Restaurant r INNER JOIN r.foods rf WHERE rf IN :foods AND r2=r GROUP BY r 

   HAVING COUNT(r)=:size) 

   AND r2.name LIKE '%:name%' AND r2.neighbourhood IN 

   :neighbourhoods AND r.maxCapacity >= :maxCapacity")


查看完整回答
反對 回復 2021-11-03
  • 1 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號