Подзапрос QueryDSL возвращает более одной строки - PullRequest
0 голосов
/ 07 января 2019

Я строю фильтр для карт в колоде и пытаюсь вернуть колоды, в которых в таблице DeckCard есть строка с двумя значениями. Кажется, что подзапрос - это способ сделать это, но у меня есть проблема, когда мой подзапрос возвращает более одной строки, что недопустимо в Postgresql.

Есть ли другой способ выразить этот запрос?

val deckQ = QDeck.deck
val predicate = BooleanBuilder()
val deckCardQ = QDeckCard.deckCard
predicate.and(
        deckQ.cards.contains(
                JPAExpressions.selectFrom(deckCardQ)
                        .where(
                                deckCardQ.cardName.eq("Card Name"),
                                deckCardQ.quantityInDeck.goe(2)
                        )
        )
)

Я получаю ошибку:

org.postgresql.util.PSQLException: ERROR: more than one row returned by a subquery used as an expression
...