Java 在数据库中添加枚举的键和说明

Java 在数据库中添加枚举的键和说明,java,list,enums,Java,List,Enums,我在java中遇到了一个小问题,我没有找到任何解决方案。 在CustomerOrder类中,我有一个枚举类型的列表。我想在数据库中存储枚举的密钥和描述。如何保存密钥和描述 枚举: 类别客户订单 @Entity public class CustomerOrder { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer id; private Integer noOfTable;

我在java中遇到了一个小问题,我没有找到任何解决方案。 在CustomerOrder类中,我有一个枚举类型的列表。我想在数据库中存储枚举的密钥和描述。如何保存密钥和描述

枚举:

类别客户订单

@Entity
public class CustomerOrder {

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;
    private Integer noOfTable;
    @OneToMany(mappedBy="customerOrder")
    @Enumerated(EnumType.STRING)
    private List<MenuList> productsOrdered;
    
    private Double totalOrder;
    @ManyToOne

    ....}
@实体
公共类客户订单{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私有整数id;
私有整数不可折叠;
@OneToMany(mappedBy=“customerOrder”)
@枚举(EnumType.STRING)
私有列表产品排序;
私人双重秩序;
@许多酮
....}

您可能会使用HashMap。差不多

HashMap<String, String> map = new HashMap<String, String>() {{
    put("SOUP", "Classic noodle Soup");
    put("FRENCH_FRIES", "Regular french fries");
}};
HashMap=newhashmap(){{
放(“汤”、“经典面汤”);
放入(“炸薯条”、“普通炸薯条”);
}};

然后您可以使用
map.get(KEY)获取描述

看看AttributeConverter

HashMap<String, String> map = new HashMap<String, String>() {{
    put("SOUP", "Classic noodle Soup");
    put("FRENCH_FRIES", "Regular french fries");
}};
 class MenuListConverter implements AttributeConverter<MenuList, String> {

    private final static String DELIMITER = ":";

    @Override
    public String convertToDatabaseColumn(final MenuList menu) {
        return String.format("%s%c%s", menu.name(), DELIMITER, "put your id here");
    }

    @Override
    public String convertToEntityAttribute(final String value) {
        if( value == null || value.isEmpty()) {
            return null;
        }
        final String name = value.split(DELIMITER)[0];
        return MenuList.valueOf(name);
    }
}
@Column(name = "MENU")
@Convert(converter = MenuListConverter.class)
private MenuList menu;