как генерировать таблицы из перечислений со значениями при весенней загрузке? - PullRequest
0 голосов
/ 22 марта 2019
@Entity
public class User{

  @Id()
  private int id;

  private UserStatus userStatus;
}

public enum Country{
    Active, Pending, Blocked;
}

Я хочу создать таблицу UserStatus со значениями внутри.

1-й подход заключается в использовании @Enumerated со String или Integer.but, но я этого не хочу, поскольку эти значения перечисления могут быть изменены.

Другой подход - объявить @Entity в классе UserStatus. добавить идентификатор и значение. Держите сопоставление ManyToOne. так что пользователь будет иметь ссылочный внешний ключ как userstatus.

Это лучший подход, если мы хотим сохранить значения перечисления в таблице или есть какой-то другой подход? Можем ли мы сгенерировать таблицу Gender со значениями enum при весенней загрузке?

[Перечисление UserStatus является лишь примером. Основная идея состоит в том, чтобы узнать, каковы наилучшие подходы к созданию таблицы и ее стоимости.]

Я был бы очень рад иметь некоторые моменты по этому поводу.

1 Ответ

0 голосов
/ 22 марта 2019

Предположим, вы используете MySQL в качестве базы данных.

Теперь, если я спрошу вас

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

Каким будет тип столбца?

VARCHAR Я думаю.

Такой же подход применяется и на уровне @Entity.

Так что этот подход звучит хорошо для меня

@Enumerated(EnumType.STRING)
private UserStatus gender;

Можете прочитать этот пост за подробнее

Относительно вашего предложения по

@ Сущность в UserStatus

Вы добавляете еще 1 слой сложности.

Придется управлять другой таблицей. LAZY_LODAING, CASCADING и другие вещи должны быть обработаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...