我正在创建一个学校日记应用程序使用spring引导和面对一个小问题。当我试图向数据库中添加一些数据时,JPA会向我显示这样的错误:
ERROR: relation "timetable_entity_tuesday" does not exist我不知道为什么会发生这种情况,因为我把所有的设置都给了我的实体,它应该在那里查找表。
这是我的密码。
TimetableEntity
@Entity
@Table(name = "timetables", schema = "working_schema")
public class TimetableEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Getter @Setter
private long id;
@Getter @Setter @ElementCollection
private List<String> monday;
@Getter @Setter @ElementCollection
private List<String> tuesday;
@Getter @Setter @ElementCollection
private List<String> wednesday;
@Getter @Setter @ElementCollection
private List<String> thursday;
@Getter @Setter @ElementCollection
private List<String> friday;
@Getter @Setter @ElementCollection
private List<String> saturday;
@Getter @Setter @ElementCollection
private List<String> sunday;
@OneToOne(mappedBy = "timetable")
@Getter @Setter
private ClassEntity schoolClass;
public TimetableEntity() {
}
}TimetableRepository
public interface TimetableRepository extends JpaRepository<TimetableEntity, Long> {
}方法,它将数据添加到数据库中,存储在服务中:
public TimetableEntity addTimetable(TimetableAddModel timetableData) throws SubjectNotFoundException {
TimetableEntity timetable = new TimetableEntity();
timetable.setTuesday(Arrays.asList("math"));
timetableRepo.save(timetable);
return timetable;
}以下是hibernate如何进行查询:
Hibernate:
insert
into
timetable_entity_tuesday
(timetable_entity_id, tuesday)
values
(?, ?)它试图向timetable_entity添加数据,尽管timetables表是给实体的。
这是我的数据库:

如果你知道什么是问题,请告诉我,我真的很感激!
发布于 2022-10-10 08:27:17
JPA2.0 @ElementCollection和@ collection to注释允许存储Java类型的集合。尝试修改映射,将@CollectionTable注释添加到实体中。
@Entity
@Table(schema = "working_schema")
public class Timetables {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Getter @Setter
private long id;
@Getter @Setter @ElementCollection @CollectionTable(name = "Monday")
private List<String> monday = new ArrayList<>();
@Getter @Setter @ElementCollection @CollectionTable(name = "Tuesday")
private List<String> tuesday = new ArrayList<>();
...
}发布于 2022-10-11 18:34:29
我认为hibernate查询应该像Hibernate一样:
insert into timetables (id, Monday, Tuesday)
values (?, ?, ?);希望能帮上忙!
https://stackoverflow.com/questions/73997089
复制相似问题