有沒有辦法在jpql
查詢(Hibernate)中有多個SELECT NEW
語句?有多個SELECT NEW語句的jpa構造函數表達式
這個工作對我來說:
@Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r) "
+" FROM Item g, Service s, Service l , Service r"
+" WHERE s.id = g.id"
+" AND s.location = l.name"
+" AND s.serviceType = 'type'"
+" AND l.serviceType = 'Location'"
+" AND l.area = r.name"
+" AND r.serviceType = 'Region'")
public List<Item> getAllItemsWithServices();
我得到了我的DTO
預期的結果。
@Component
public class ItemServiceDTO{
private Item item;
private Service serviceType;
private Service serviceLocation;
private Service serviceRegion;
public ItemServiceDTO(item item, Service serviceType, Service serviceLocation, Service serviceRegion) {
super();
this.item = item;
this.serviceType = serviceType;
this.serviceLocation = serviceLocation;
this.serviceRegion = serviceRegion;
}
但我想要的是有一個Language
與它的構造器的新實例。
例如像這樣:
@Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r), new LanguageDTO()"
+" FROM Item g, Service s, Service l , Service r"
或者在ItemService
@Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r, new LanguageDTO())"
+" FROM Item g, Service s, Service l , Service r"
我也有興趣子查詢中使用我的DTO對象Map
和List
但我看了那不是可能呢?是對的嗎?
在使用這兩個示例時,我的Spring引導應用程序確實以錯誤啓動。
最後我希望有一個地圖Map<List<Item>,Map<List<LanguageDTO>,List<ItemServiceDTO>>> map;
什麼是您的JPA提供者(即EclipseLink,Hibernate)? – Ish
對不起,其Hibernate – Patrick
hello。我正在嘗試使用新的操作員,但找不到任何資源。問題:你是否創建了一個jpa repo接口並放置這條語句:public List- getAllItemsWithServices();在那個回購?一個例子或引用一個完整的例子將不勝感激。謝謝 –
jscriptor