À l'aide de CollectionExpression dans QueryDSL
Dans le QueryDSL de la bibliothèque, le com.mysema.query.types.expr.SimpleExpression<T>
classe a un SimpleExpression.in(CollectionExpression<?, ? extends T>)
méthode qui est censé prendre une expression qui est censé renvoyer une collection. Mais je ne peux pas trouver un moyen de créer un objet de type com.mysema.query.types.CollectionExpression<?, ? extends T>
.
Mon expression de requête ressemble à ceci:
QEvent.event.organization.in(expression)
où je veux le expression
être quelque chose comme:
QOrganization.organization.country.in("India", "USA")
Mais la seconde expression est de type com.mysema.query.types.expr.BooleanExpression
et je suis incapable de trouver un moyen de le convertir en com.mysema.query.types.CollectionExpression<?, ? extends T>
.
J'ai regardé dans le QueryDSL API docs, mais ne pouvait pas trouver quelque chose de pertinent.
organization
dans QEvent
?OriginalL'auteur Abhinav Sarkar | 2011-08-18
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas convertir un BooleanExpression en CollectionExpression, pour les mêmes raisons pourquoi vous ne pouvez pas convertir un java.lang.Boolean en java.util.Collection. Ils ne sont pas compatibles.
Ce qui serait l'expression suivante pour vous
Avez-vous peut-être essayer d'exprimer quelque chose de ce genre?
Ou plus simple
Je suppose que ce que vous avez essayé de décrire est une Expression à l'aide de sous-requêtes. Quelque chose comme ceci
La mise en œuvre de la sous-requête() est Querydsl backend spécifique. Si vous utilisez une jointure, puis vous obtenez une ligne pour chaque correspondance de l'événement - organisation de la combinaison et avec les sous-requêtes que vous obtenez des événements uniques qui ont des organisations de la réunion des contraintes données.
Différences de rendement de rejoindre vs sous-requête de mise en œuvre spécifiques.
Qui Querydsl backend utilisez-vous? JPA, SQL ou autre chose?
OriginalL'auteur Timo Westkämper
Je ne pense pas que vous pouvez le faire comme ça, ça ne ferait pas de sens sur le DB côté, de toute façon.
Vous avez à utiliser une sous-Requête
OriginalL'auteur Sean Patrick Floyd