使用hibernate保存自定义对象类型变量。

问题描述 投票:-2回答:1

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

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

availableSchedule.class ->pojo。

package fG.Model;

import java.util.Arrays;

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

TutorAvailablitySchedules.class ->实体。

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

@Entity
public class TutorAvailablitySchedules {

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

我得到的错误。

 Could not determine type for: fG.Model.availablitySchedule, at table: tutor_availablity_schedules, for columns: [org.hibernate.mapping.Column(available_schedules)]
java hibernate spring-boot
1个回答
0
投票

我将为你勾画一个可能的解决方案。它可能需要一些改进,这取决于你想如何建模你的实体的关系。

  1. 你可以注释类 AvailablitySchedule 作为 @Entity 以致于它反映了一个表。因此,你将不得不考虑一个id。
  2. 重构器 AvailablitySchedule[] availableSchedules 课堂上 TutorAvailablitySchedulesList<AvailablitySchedule> availableSchedules
  3. 定义一个 @OneToMany 之间的关系 TutorAvailablitySchedulesAvailablitySchedule 批注栏 List<AvailablitySchedule> availableSchedulesTutorAvailablitySchedules@OneToMany
  4. 变化 String[] days;List<String> days; 课堂上 AvailablitySchedule
  5. 注释 List<String> days; 例如 @ElementCollection.
  6. 看看创建的表,想想这是不是你想要的结构。
© www.soinside.com 2019 - 2024. All rights reserved.