首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA错误:不存在timetable_entity_tuesday关系

JPA错误:不存在timetable_entity_tuesday关系
EN

Stack Overflow用户
提问于 2022-10-08 12:45:29
回答 2查看 80关注 0票数 1

我正在创建一个学校日记应用程序使用spring引导和面对一个小问题。当我试图向数据库中添加一些数据时,JPA会向我显示这样的错误:

代码语言:javascript
复制
ERROR: relation "timetable_entity_tuesday" does not exist

我不知道为什么会发生这种情况,因为我把所有的设置都给了我的实体,它应该在那里查找表。

这是我的密码。

TimetableEntity

代码语言:javascript
复制
@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

代码语言:javascript
复制
public interface TimetableRepository extends JpaRepository<TimetableEntity, Long> {
}

方法,它将数据添加到数据库中,存储在服务中:

代码语言:javascript
复制
public TimetableEntity addTimetable(TimetableAddModel timetableData) throws SubjectNotFoundException {
        TimetableEntity timetable = new TimetableEntity();
        timetable.setTuesday(Arrays.asList("math"));
        timetableRepo.save(timetable);
        return timetable;
}

以下是hibernate如何进行查询:

代码语言:javascript
复制
Hibernate: 
    insert 
    into
        timetable_entity_tuesday
        (timetable_entity_id, tuesday) 
    values
        (?, ?)

它试图向timetable_entity添加数据,尽管timetables表是给实体的。

这是我的数据库:

如果你知道什么是问题,请告诉我,我真的很感激!

EN

回答 2

Stack Overflow用户

发布于 2022-10-10 08:27:17

JPA2.0 @ElementCollection和@ collection to注释允许存储Java类型的集合。尝试修改映射,将@CollectionTable注释添加到实体中。

代码语言:javascript
复制
@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<>();
    ...
}
票数 0
EN

Stack Overflow用户

发布于 2022-10-11 18:34:29

我认为hibernate查询应该像Hibernate一样:

代码语言:javascript
复制
insert into timetables (id, Monday, Tuesday) 
values (?, ?, ?);

希望能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73997089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档