«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как гарантировать, что Hibernate сохраняет значения перечисления при сопоставлении в столбце MySQL Enum?

Как гарантировать, что Hibernate сохраняет значения перечисления при сопоставлении в столбце MySQL Enum?

Опубликовано в 2025-02-06
Просматривать:961

How to Ensure Hibernate Preserves Enum Values When Mapping to a MySQL Enum Column?

сохранение значений перечисления в Hibernate: Устранение неполадок. и их соответствующие отображения необходимы. При работе с перечисленными типами в Java крайне важно установить, как Hibernate отображает эти перечисления в базовую базу данных. код. Тем не менее, вы сталкиваетесь с следующей ошибкой: «Неправильный тип столбца в myApp.person для пола столбца. Найдено: enum, ожидается: целое число». Эта ошибка возникает, когда Hibernate ожидает, что гендерный столбец будет целым числом из -за перечисленного как порядка или строки, в зависимости от спецификации аннотации @Enumerated. Определение столбца с использованием атрибута ColumnDefinition:

]

@column (columndefinition = "enum ('male', 'nember')") @Enumerated (enumtype.string) Частный гендерный пол;

, предоставив определение столбца, вы поручите гибернате не угадать тип столбца, а придерживаться указанного определения.

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

@Column(columnDefinition = "enum('MALE','FEMALE')")
@Enumerated(EnumType.STRING)
private Gender gender;

] Таким образом, вы можете убедиться, что значения перечисления сохраняются в вашем java enum при синхронизации ваших сценариев Liquibase или SQL.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3