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

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

oneToMany 關系中的 HQL 查詢

oneToMany 關系中的 HQL 查詢

慕田峪7331174 2023-06-28 19:44:21
我們有兩個實體,Person并且House。一個Person可以有很多House。Person我正在嘗試編寫一個 HQL 查詢,該查詢獲取按 列表大小排序的列表House,有一個條件,即 的值House應該大于400。我的班級人物@Entity    public class Person{        @Id        @GeneratedValue(strategy = GenerationType.AUTO)        private Long id;        private String name;        @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy =         "person", fetch = FetchType.LAZY)        private List<House> houses = new ArrayList<>();    /**     * utility method to adjust relation     * @param house     */    public void addHouse( House house ) {        this.houses.add(house);        house.setPerson(this);    }       //constructors, getters and setter omitted..    }我的班級之家@Entitypublic class House {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    private Integer value;    @ManyToOne    @JoinColumn(name = "person_id")    private Person person;   //constructors, getters and setters omitted..}我的表在數據庫層上的表示Person                     Houseid name                    id   value  person_id1  George                  1    500     12  Frederic                2    250     23  Jamal                   3    500     3                           4    600     3我的查詢結果應該是 [Jamal, George],并且 Frederic 不應該包含在內,因為他唯一擁有的房子沒有 value >400。我的查詢public interface PersonRepository  extends JpaRepository<Person, Long> {      @Query(value = "select p from Person p order by p.houses.size desc ")      List<Person> getPersonWithMaxHouse();}這樣,我就得到了根據房屋數量排序的人員列表。我怎樣才能添加 . 值的條件House?我的第二個問題是關于與我正在尋找的 hql 等效的 Sprig Data JPA 查詢?例如,此存儲庫查詢返回姓名等于給定 String 的所有人員: List<Person> findAllByName(String Name);
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

我認為應該是


public interface PersonRepository  extends JpaRepository<Person, Long> {


      @Query(value = "select distinct p from Person p join p.houses h where h.value > 400 order by p.houses.size desc ")

      List<Person> getPersonWithMaxHouse();

}


查看完整回答
反對 回復 2023-06-28
  • 1 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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