gpt4 book ai didi

java - 使用java将List插入mysql数据库

转载 作者:行者123 更新时间:2023-12-02 07:23:12 27 4
gpt4 key购买 nike

在我的代码中..

List<WeekdayType> weekday = new ArrayList<WeekdayType>();

我将工作日插入数据库...听到 WeekdayType is Enum

public enum WeekdayType {
MONDAY(Calendar.MONDAY), TUESDAY(Calendar.TUESDAY), WEDNESDAY(
Calendar.WEDNESDAY), THURSDAY(Calendar.THURSDAY), FRIDAY(
Calendar.FRIDAY), SATURDAY(Calendar.SATURDAY), SUNDAY(
Calendar.SUNDAY);
private int day;
private WeekdayType(int day) {
this.day = day;
}
public int getDay() {
return day;
}}

我正在像这样在 Hibernate 中创建 Bean..

    @Entity
@Table(name="EC_TIMETABLE")
public class TimetableVO
{
-------
-----
@Column(name="REPEAT_DAYS")
private List<WeekdayType> repeatDays;
//Setter and Getter...
}

我正在将值插入数据库,但它给出错误:

org.hibernate.MappingException: Could not determine type for: java.util.List, at table: EC_TIMETABLE, for columns: [org.hibernate.mapping.Column(REPEAT_DAYS)]

最佳答案

您需要使用@Enumerated注释来注释Enum列表。

@Column(name="REPEAT_DAYS")
@Enumerated(EnumType.STRING)
private List<WeekdayType> repeatDays;

您可以使用 @Enumerated 注释的 EnumType 枚举属性指定如何将枚举保留在数据库中。 EnumType.ORDINAL 指定枚举将保留为整数值。此处,设置为 VALUE1 的 myEnum 将保留为 0,将 VALUE2 设置为 1,等等。

另一种方法是使用 EnumType.STRING 来指定将使用字段设置的枚举值的名称来保留枚举。因此,应用到前面的示例,将字段 myEnum 设置为 MyEnum.VALUE1 将保留为 VALUE1 等。

更新:此外,您还需要使用枚举的所有有效值指定 columnDefinition 属性。

@Column(name="REPEAT_DAYS", columnDefinition="enum(1,2,3)")

引用:mapping-enum-types-with-hibernate-annotations

关于java - 使用java将List<Enum>插入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com