JPA:将2个数组列表合并到1个数据库表中

时间:2018-08-01 16:53:25

标签: java jpa h2

我有一个Java类,它表示员工的工作时间,称为Worktime。它包含ArrayListstartTimes的{​​{1}}。我正在尝试通过使用以下注释

将其映射到数据库:
endTimes

我在数据库中得到的结构如下:

enter image description here

我想要的是这两个值在同一行中。是否有机会按索引进行操作?感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

也许最好再创建一个@Entity并添加一个@OneToMany关系:

在工作时间:

...
@OneToMany
@JoinColumn(name = "worktime_id", referencedColumnName = "worktime_id")
private WorkTimeTimes times;
...

新实体WorkTimeTimes:

@Entity
@Table(name="worktime_times")
public class WorkTimeTimes {
    @Id
    @Column(name="worktime_times_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int worktimeTimesId;

    @Column(name="worktime_id")
    private int worktimeId;

    @Temporal(TemporalType.TIME)
    @Column(name="start_time")
    private Date startTime;

    @Temporal(TemporalType.TIME)
    @Column(name="end_time")
    private Date endTime;

    ...

}

答案 1 :(得分:1)

您可以创建一个名为WorkDuration的对象,其中包含您的两个属性(startTimeendTime),并引用您的类中该对象的列表。 该对象可以是实体,也可以是嵌入式对象。