#java #spring #jpa #orm
Вопрос:
Я хотел бы иметь массив строк в своей базе данных PostgreSQL и преобразовать их в набор объектов перечисления в моем коде. Это то, что у меня есть:
@ElementCollection(fetch = FetchType.EAGER, targetClass = CurrencyDto.class) @Enumerated(EnumType.STRING) private Setlt;CurrencyDtogt; currencyOptions;
Но он пытается извлечь его из другой таблицы с этой ошибкой relation "theme_config_currency_options" does not exist
Я не хочу, чтобы JPA брала его с другого стола. Строковое представление моих объектов перечисления должно находиться в этом столбце внутри массива. Мой класс перечисления таков CurrencyDto
.
public enum CurrencyDto { ALL, //Albania AMD, //Armenia AZN, //Azerbaijan BYN, //Belarus BAM, //Bosnia and Herzegovina BGN, //Bulgaria ... }
Как правильно достичь того, чего я хочу?
Ответ №1:
Во-первых, вам нужно добавить зависимости, необходимые для выполнения этой работы. Затем вы должны создать класс DTO для валюты,
@Entity public class Currency { @Id private int id; private String title; } public enum CurrencyName { C1, C2, C3, C4; }
теперь с помощью этого класса вы можете задать название валюты и получить данные из базы данных.
Комментарии:
1. действительно ли мне нужно создавать таблицу валют только для этого? пожалуйста, проверьте мой класс перечисления в вопросе. Я просто добавил это.
2. Да, где вы собираетесь получить название валюты.
3. Я хочу назвать валюту в своем коде. Я не хочу хранить валюты в базе данных. Мои валюты не изменятся.