SELECT NEW
ステートメントをjpql
クエリ(Hibernate)内に複数記述する方法はありますか?複数の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"
それとも私のDTOオブジェクトでMap
とList
を使用してItemService
@Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r, new LanguageDTO())"
+" FROM Item g, Service s, Service l , Service r"
の副選択で私も興味が、私は可能なのthatsのない読みますか?そうですか?
2つの例を使用している間、私のSpringブートアプリケーションはエラーで始まります。終わり
私はMap<List<Item>,Map<List<LanguageDTO>,List<ItemServiceDTO>>> map;
JPAプロバイダ(つまり、EclipseLink、Hibernate)とは何ですか? – Ish
申し訳ありませんが、そのHibernate – Patrick
こんにちは。私は新しい演算子を使用しようとしていますが、ほとんどリソースを見つけることはありません。質問:jpa repoインターフェイスを作成して、次のステートメントを配置しますか?public List- getAllItemsWithServices();そのレポで?完全な例の例または参照は高く評価されます。ありがとうございました –
jscriptor