Stellen Sie sich das folgende Szenario vor: zwei Datenbanktabellen (Produzenten und Produkte), mit einer Eins-zu-Viele-Beziehung (ein Produkt wird von einem Hersteller erstellt, ein Hersteller hat viele Produkte), jede Tabelle mit mehreren Feldern (einschließlich Name und ID).HQL - Wählen Sie geschachtelte Objekte
Außerdem, ich denke, ich habe zwei verwaltete Entitäten (Producer und Produce) und zwei kleinere Versionen dieser Objekte (nicht verwaltet) als DTOs (ProducerDTO und ProduceDTO) mit nur Name und ID (und die Beziehung).
Ich möchte mit einer HQL-Abfrage ein bestimmtes Produkt (als ein DTO) mit seiner Hersteller-Set auch auswählen. Deutlicher: SELECT new ProduceDTO(produce.id, new ProducerDTO(producer.id, producer.name), produce.name) FROM Produce produce JOIN produce.producer producer WHERE ...
Aber ich bekomme ein QuerySyntaxException: unexpected token: ,
nach produce.id
in der Abfrage. Meine Frage wäre also: Ist es möglich geschachtelte benutzerdefinierte Objekte in HQL auszuwählen und wenn ja, welche Regeln/Einschränkungen gibt es? Für ein einzelnes benutzerdefiniertes Objekt funktioniert es ganz gut, aber wenn ich versuche, die nächsten 2 oder mehr zu erreichen, habe ich Probleme.
Hinweis: Die Frage ist, das Phänomen besser zu verstehen, nicht unbedingt für diesen speziellen Fall (ich habe bereits einen Workaround für meinen Fall mit meinen tatsächlichen Klassen).
Danke!