Как у класса есть атрибут, который может содержать любое перечисление? и составить этот класс с JPAJAVA

Программисты JAVA общаются здесь
Anonymous
Как у класса есть атрибут, который может содержать любое перечисление? и составить этот класс с JPA

Сообщение Anonymous »

Я делаю личный проект, чтобы учиться. Программа консоли Full-Backend. Чтобы показать действия пользователя, я печатаю разные перечисления в зависимости от роли пользователя. Моя идея сохраняет перечисления в дБ, как область роли сущности. Итак, моя роль Java Class нуждается в атрибуте, который может содержать любой тип перечисления и отображать его с помощью JPA. Также я могу распечатать массив действий, полученных из таблицы, он должен быть более простым, но, поскольку я с перечислением.import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.util.Objects;

@Converter(autoApply = true)
public class GenericEnumConverter implements AttributeConverter convertToEntityAttribute(String dbData) {
if (dbData == null) return null;
String[] parts = dbData.split(DELIMITER, 2);
if (parts.length != 2) {
throw new IllegalArgumentException("Invalid enum format: " + dbData);
}
String className = parts[0];
String enumName = parts[1];
try {
Class enumClass = Class.forName(className);
if (!enumClass.isEnum()) {
throw new IllegalArgumentException(className + " is not an enum");
}
@SuppressWarnings("unchecked")
Class> enumType = (Class>) enumClass;
return Enum.valueOf(enumType, enumName);
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("Enum class not found: " + className, e);
}
}
}

< /code>
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class MyEntity {
@Id
private Long id;

@Convert(converter = GenericEnumConverter.class)
private Enum anyEnum; // Can hold any enum type

// Getters and setters
public Enum getAnyEnum() {
return anyEnum;
}

public void setAnyEnum(Enum anyEnum) {
this.anyEnum = anyEnum;
}
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... this-class

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