我正在使用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();
货币是枚举
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(...)的情况下将映射字符串适当地枚举吗?