gpt4 book ai didi

java - 如何使用java在mysql的枚举类型列中插入两个以上的值?

转载 作者:行者123 更新时间:2023-11-29 05:50:49 25 4
gpt4 key购买 nike

像这样在我的 Java 程序枚举中..

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 像这样定义我的 TimetableVO.java

    @Column(name="REPEAT_DAYS")
@Enumerated(EnumType.STRING)
private WeekdayType repeatDays;// And Setter and Getters....

在我的服务课上我是这样做的..

String totalDays="MONDAY,SUNDAY,FRIDAY,SATURDAY"
public void createEvent(TimetableVO timetableVO) {
WeekdayType weekday = null;
for (String day : totalDays.split(",")) {
weekday = WeekdayType.valueOf(day);
}
timetableVO.setRepeatDays(weekday);
......
......
......
entityManager.persist(timetableVO);



}

但问题是在数据库列中仅添加最后一个值...这意味着它会覆盖以前的值

对于 Ex:above String SATURDAY 只插入数据库,但我想插入所有值,如 MONDAY,SUNDAY,FRIDAY,SATURDAY...给我建议..

最佳答案

改变你的列类型

private WeekdayType repeatDays;

应该改为String类型

private String repeatDays;

将您的 csv 设置为此列。

其他选项是有

private List<WeekdayType> repeatDays;@JoinTable注释

这将创建另一个映射表。处理多对多关系。

关于java - 如何使用java在mysql的枚举类型列中插入两个以上的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13951316/

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