Verwendung der Aufzählungsliste als Parameter in der HQL-Abfrage

8

Ich habe eine Entität namens Band mit einem Attribut List<Genres> genres , Genres ist ein ENUM mit den folgenden Werten: ALTERNATIVE_ROCK("Alternative Rock"), CLASSIC_ROCK("Classic Rock"), HARD_ROCK("Hard Rock"), HEAVY_METAL("Heavy Metal"),PROGRESSIVE_ROCK("Progressive Rock");

Ich versuche, eine Methode zu erstellen, die ein List<Band> mit einem List<Genres> als Parameter unter Verwendung von HQL zurückgibt, etwa wie folgt:

%Vor%

Aber ich erhalte einige Fehler mit HQL-Abfragen, die ich versucht habe?

Über einigen HQL-Abfragen, die ich versucht habe ...

%Vor%

gibt einen Fehler zurück, der besagt, dass eine ArrayList nicht in Enum umgewandelt werden kann ...

oder ...

%Vor%

gibt einen Fehler zurück wie: Dereferenz Skalar Collection Element ENUM

Eigenschaft genres mapping, entity Band ...

%Vor%     
Bruno Santana 31.12.2014, 02:35
quelle

2 Antworten

7

Dies funktioniert für Hibernate 4

%Vor%

Überprüfen Sie, dass die Methode Query#setParameterList anstelle von Query#setParameter verwendet wird und dass g nicht g.value verwendet wird.

    
Arturo Volpe 31.12.2014, 13:02
quelle
1

Ich glaube nicht, dass Sie das tun können. Laut JPA-Spezifikation (Abschnitt 4.6.9. Seite 185) Listen werden nicht als linker Operand mit IN Ausdruck unterstützt.

    
Predrag Maric 31.12.2014 11:58
quelle