Используя Spring JDB C, как правильно преобразовать перечисление в и из пользовательского значения? - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть перечисление с пользовательскими целочисленными значениями, сопоставленными с каждым перечислением, потому что порядки могут часто меняться, поэтому я не могу положиться на порядковый номер. Я вижу похожие вопросы, заданные c для JPA / Hibernate (у меня именно такой сценарий: Отображение enum в JPA с фиксированными значениями? ), но в моем проекте мы используем только шаблоны JDB C поэтому нет интеграции JPA / Hibernate.

Я могу создать RowMapper и установить перечисление вручную, но я хотел избежать этого, поскольку поведение по умолчанию для всех остальных столбцов является правильным. Я смог записать значение из enum, переопределив setTypeValue в классе enum, но я не уверен, что будет эквивалентно для этого при чтении.

Пример (из скопированного вопроса):

  public enum Right {
      READ(100), WRITE(200), EDITOR (300);

      private int value;

      Right(int value) { this.value = value; }

      public int getValue() { return value; }
  };

Я хочу иметь возможность использовать getValue () для установки значения в базе данных и его считывания и сопоставления с перечислением (например, «200» в БД необходимо сопоставить с Right.WRITE

...