我們有兩個實體,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);
oneToMany 關系中的 HQL 查詢
慕田峪7331174
2023-06-28 19:44:21