В моей базе данных есть класс Exchange, который содержит список CurrencyPairs.
Можно ли использовать метод Repository для непосредственного получения CurrencyPair, который совпадает по имени внутри данного Exchange? Я думаю о чем-то вроде
CurrencyPairDbo findByExchangeNameAndCurrencyPairIn(...)
но я не понимаю, как все это связать. Или мне нужно написать собственный запрос для этого? И это должно быть в ExchangeRepository или CurrencyPairRespository?
@Entity()
@Table(name = "Exchanges")
public class ExchangeDbo {
@Id @GeneratedValue
@Getter private Long id;
@Getter private String exchangeName;
@OneToMany(mappedBy = "exchange",
cascade = CascadeType.ALL,
orphanRemoval = true,
fetch = FetchType.EAGER)
@BatchSize(size=100)
@Getter private List<CurrencyPairDbo> listCurrencyPair = new ArrayList<>();
...
}
@Entity()
public class CurrencyPairDbo {
@Id @GeneratedValue
@Getter private Long id;
@Column(unique=true)
private String currencyPair;
@ManyToOne(fetch=FetchType.EAGER)
@Getter private ExchangeDbo exchange;
...
}
Edit:
Я думаю, что это не Find ... Во что я хочу вообще. Я думаю, что-то вроде:
List<CurrencyPairDbo> x = exchangeRepository.findByExchangeNameLowercaseAndListCurrencyPairCurrencyPair(exchangeName.toLowerCase(), currencyPair);
может работать, за исключением того, что in возвращает объект Exchange и a:
org.springframework.core.convert.ConverterNotFoundException: не найден конвертер, способный преобразовать тип [biz.ianw.coindatabase.database.ExchangeDbo] в тип [biz.ianw.coindatabase.database.CurrencyPairDbo]