В наших приложениях довольно распространенная ситуация, когда некоторые объекты должны быть представлены перечислением: например, типы, категории, статус и тому подобное.Как обрабатывать дублирование между java enum и таблицей базы данных?
Часто в коде используются условия или потоки, которые используют значения для принятия решения между одним действием, поэтому значения должны быть «известны» каким-либо образом для приложения (то есть он должен иметь возможность ссылаться к конкретному экземпляру, чтобы решить вместо ссылки на класс в целом). Вот почему мы используем перечисления вместо обычного класса.
Проблема заключается в том, что эти объекты также должны храниться (или, по крайней мере, ссылаться) в базе данных, как поля других объектов. Обычно мы создаем таблицу для каждого объекта, чтобы иметь возможность проводить проверки целостности ссылок в этих столбцах, а также то, что данные имеют «значение» в базе данных самостоятельно, без необходимости ссылаться на перечисление, чтобы узнать, что означает каждый идентификатор ,
В идеале данные для этих объектов должны быть заполнены из данных в перечислении, но в настоящее время мы имеем значения, дублированные в сценариях инициализации db.
Будет немного сложнее, если используется ORM, например, Hibernate.
Хотелось бы узнать, как другие люди справляются с такой ситуацией.
Я не совсем согласен с идеей дублирования между перечислением и таблицей базы данных, но пока не нашел лучшего решения.
Это было задано много раз раньше - посмотрите на «связанные» ссылки с правой стороны –