Я использую 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 (...) везде?