Gibt es eine Möglichkeit, mehrere SELECT NEW
Anweisungen in einer jpql
Abfrage (Hibernate) zu haben?jpa Konstruktor Ausdrücke mit mehreren SELECT NEW Anweisungen
Dies funktioniert für mich:
@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();
ich das erwartete Ergebnis in meinem DTO
bekommen.
@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;
}
Aber was ich will, ist eine neue Instanz von Language
mit seinem contructor zu haben.
Zum Beispiel wie folgt aus:
@Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r), new LanguageDTO()"
+" FROM Item g, Service s, Service l , Service r"
Oder in einem subselect von ItemService
@Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r, new LanguageDTO())"
+" FROM Item g, Service s, Service l , Service r"
ich interessiert auch bei der Verwendung Map
und List
in meine DTO Objekte aber ich lese das ist nicht möglich? Ist das richtig?
Meine Spring-Boot-Anwendung beginnt mit Fehlern, während Sie die beiden Beispiele verwenden.
Am Ende möchte ich eine Karte von Map<List<Item>,Map<List<LanguageDTO>,List<ItemServiceDTO>>> map;
Was ist Ihr JPA-Anbieter (d. H. EclipseLink, Hibernate)? – Ish
Entschuldigung, sein Hibernate – Patrick
hallo. Ich versuche, den neuen Operator zu verwenden, aber wenig Ressourcen zu finden. Frage: Erstellen Sie eine jpa-Repo-Schnittstelle und platzieren Sie diese Anweisung: public List- getAllItemsWithServices(); dass dieses Repo? Ein Beispiel oder ein Verweis auf ein vollständiges Beispiel würde sehr geschätzt werden. Vielen Dank –
jscriptor