使用休眠保存自定义对象类型变量

时间:2020-05-10 15:22:25

标签: java hibernate spring-boot

我有一个基于Spring Boot和Hibernate的项目,其中包含一个简单的schedule(pojo)类和一个实体类,可使用hibernate保存在mysql中。

现在,我想在tutorAvailableSchedules实体中创建一个字段,该实体是调度类型的数组。 当我尝试下面的代码时,它给了我错误。

availableSchedule.class-> pojo

vector<triplet>

TutorAvailablitySchedules.class->实体

package fG.Model;

import java.util.Arrays;

public class availablitySchedule {
    String startTime;
    String endTime;
    String days[];
}

我得到的错误:

package fG.Entity;
import fG.Model.availablitySchedule;

@Entity
public class TutorAvailablitySchedules {

    @Id
    Integer tid;
    String fullName;
    availablitySchedule[] availableSchedules;
    String currentSchedule;
    String availablityStatus;
}

1 个答案:

答案 0 :(得分:0)

我将为您提供一个可能的解决方案。可能需要进行一些改进,具体取决于您要如何为实体之间的关系建模。

  1. 您可以将类AvailablitySchedule注释为@Entity,以使其反映一个表。结果,您将不得不考虑一个ID。
  2. 将类AvailablitySchedule[] availableSchedules中的TutorAvailablitySchedules重构为List<AvailablitySchedule> availableSchedules
  3. 通过用@OneToMany注释TutorAvailablitySchedules中的字段AvailablitySchedule,定义List<AvailablitySchedule> availableSchedulesTutorAvailablitySchedules之间的@OneToMany关系
  4. 将类String[] days;中的List<String> days;更改为AvailablitySchedule
  5. 使用例如注释List<String> days; @ElementCollection
  6. 查看所创建的表,并考虑这是否是您想要的结构。