[英]How to query list elements using spring JPA
背景:沙拉含有多種蔬菜。 讓我們假設沙拉的配方是按照給定的順序添加蔬菜,因此訂單也需要堅持
這是類定義
public class Salad {
private String name;
private String description;
private List<Vegetable> veggies = new ArrayList<Vegetable>();
//setters and getters
}
public class Vegetable {
private String name;
private String description;
//setters and getters
}
這是hibernate-mapping.xml
<hibernate-mapping>
<class name="Salad" table="SALAD">
<id name="id">
<generator class="sequence"/>
</id>
<property name="name"/>
<property name="description"/>
<list name=veggies cascade="all-delete-orphan" table="SALAD_VEGGIES" lazy="false">
<key column="salad_id" />
<list-index column="idx" />
<many-to-many column="veg_id" class="Vegetable" />
</list>
</class>
<class name="Vegetable" table="VEGETABLE">
<id name="id">
<generator class="sequence"/>
</id>
<property name="name"/>
<property name="description"/>
</class>
</hibernate-mapping>
目標:創建一個JPQ查詢以獲取給定沙拉所涉及的所有蔬菜的列表
我嘗試了什么? 1)
SELECT v FROM SALAD.veggies v where v.salad_id = :salad_id
這沒用。 如何查詢沒有類的表(如List和Map?變量)
嘗試這個:
SELECT v FROM Salad s JOIN s.veggies v where s.id = :salad_id
請記住:在JPQL中,您使用的是Java字段,而不是列名。 此外,還沒有從Vegetable
實體到Salad
實體的關系。
你甚至可以說
select v from Vegetable v where v.salad_id = :saladId
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.