Как правильно отобразить перечисление в отдельной таблице?

#spring #hibernate #jpa #enums

#spring #спящий режим #jpa #перечисления

Вопрос:

Существует объект — ‘Parameter’, в который внесено перечисление — ‘ValueType’

 @Data
@Entity
public class Parameter {
    @Id
    @Column(name = "id", unique = true, nullable = false)
    private UUID id;

   @Enumerated(EnumType.String)
   private ValueType type;

}

public enum ValueType {
   STRING,
   NUMBER;
}
  

Как лучше всего сделать ‘ValueType’ отдельной таблицей, в которой эти таблицы связаны отношением OneToOne

Ответ №1:

В качестве наилучшей практики вы бы не использовали отдельную таблицу, если вам нужно перечисление — ваш подход выглядит очень хорошо.

Если вы хотите сохранить значения в отдельной таблице, вам нужно создать ее как объект (возможно, только с одним полем, значением перечисления, которое также является первичным ключом) и связать его с ManyToOne / OneToMany . OneToOne, похоже, не имеет большого смысла. (вы можете посмотреть на Bootify.io чтобы сделать любой из этих двух вариантов)