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