Как я могу правильно сопоставить тип данных ENUM из моей базы данных с моим объектом Spring Data JPA с помощью HibernateJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу правильно сопоставить тип данных ENUM из моей базы данных с моим объектом Spring Data JPA с помощью Hibernate

Сообщение Anonymous »

Как правильно сопоставить тип данных ENUM из моей базы данных с объектом Spring Data JPA с помощью Hibernate?
У меня есть тип ENUM, определенный в схеме моей базы данных, и я использование Spring Data JPA с Hibernate для моего приложения Java. Я хочу сопоставить этот тип ENUM с атрибутом в моем классе сущностей JPA, но у меня возникают проблемы с целостностью данных при извлечении данных из базы данных.
Вот мое определение ENUM в базе данных :

Код: Выделить всё

ENUM('EQUIPOS', 'CUENTAS', 'WIFI', 'INTERNET', 'SOFTWARE')
А вот как я определил соответствующее перечисление Java:

Код: Выделить всё

public enum TipoEnum {
EQUIPOS,
CUENTAS,
WIFI,
INTERNET,
SOFTWARE
}
Мой класс сущности JPA выглядит следующим образом:

Код: Выделить всё

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

// How do I properly map this ENUM type to my database column?
private TipoEnum tipo;

// Getters and setters...
}

Когда я пытаюсь получить данные из базы данных с помощью репозиториев Spring Data JPA, я получаю ошибки, связанные с нарушением целостности данных. Похоже, что Hibernate пытается неправильно сопоставить значения ENUM.
Как правильно сопоставить тип ENUM из моей базы данных с моим классом сущностей JPA с помощью Spring Data JPA и Hibernate? Существуют ли какие-либо конкретные аннотации или конфигурации, которые мне необходимо использовать для обеспечения правильного сопоставления и предотвращения проблем с целостностью данных?
Обнаружено, что значение ошибки «EQUIPOS» находится за пределами допустимого диапазона для типа java. .lang.Byte возникает из-за типа данных ENUM в базе данных.
Создано Java-перечисление TipoEnum для представления значений ENUM, присутствующих в базе данных.
Проверено, что значения ENUM в базе данных являются «EQUIPOS», «CUENTAS», «WIFI», «ИНТЕРНЕТ», «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ».
Убедился, что перечисление TipoEnum в Java соответствует значениям ENUM в базе данных.
Изучил сообщение об ошибке, чтобы понять его. основная причина.

Подробнее здесь: https://stackoverflow.com/questions/779 ... g-data-jpa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»