我正在使用Sping Boot 创建一个学校日记应用程序,遇到了一个小问题。当我尝试向数据库添加一些数据时,JPA显示了这样的错误:
ERROR: relation "timetable_entity_tuesday" does not exist
我不知道为什么会这样,因为我把所有的设置都给了我的实体,它应该在那里寻找表。
这是我的代码。
时间表实体
@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() {
}
}
时间表存储库
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
表已提供给实体。
这是我的数据库:
如果你知道有什么问题,请告诉我,我会非常感激的!
2条答案
按热度按时间2wnc66cl1#
JPA 2.0@ElementCollection和@CollectionTable注解允许储存Java类型的集合。请尝试修改Map,将@CollectionTable注解新增至您的实体。
insrf1ej2#
我想,Hibernate的查询应该像Hibernate一样:
希望能帮上忙!