Как сопоставить строку типа столбца с перечислением в спящем режиме - PullRequest
0 голосов
/ 28 февраля 2019

Я использую Postgres и Spring Data.Сущность выглядит следующим образом:

public class Market {

@Id
@GeneratedValue
private Long id;

/**
 * aka first currency
 */
@NotNull
@Enumerated(EnumType.STRING)
private Currency baseCurrency;

/**
 * aka second currency
 */
@NotNull
@Enumerated(EnumType.STRING)
private Currency quoteCurrency;
...

У меня есть следующий запрос в

@Query(value = "SELECT BASE_CURRENCY FROM MARKETS UNION SELECT QUOTE_CURRENCY FROM MARKETS", nativeQuery = true)
Set<Currency> findAllSupportedCurrencies();

Валюта - enum

public enum Currency {
EUR(false),
USD(false),
PLN(false),
BTC(true),
LTC(true),
ETH(true),

...

Проблема возникает во время выполнения, когда у меня есть следующие шаги

//        When
    Set<Currency> output = marketRepository.findAllSupportedCurrencies();
    for(Currency currency : output){
        System.out.println(currency);
    }

Я получаю исключение Cast. Любая идея, как правильно преобразовать строку карты в перечисление без Currency.valueOf (...) везде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...