Как создать столбец массива перечисления с помощью JPA?

#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. Я хочу назвать валюту в своем коде. Я не хочу хранить валюты в базе данных. Мои валюты не изменятся.