【发布时间】:2018-08-01 16:53:24
【问题描述】:
我有一个 Java 类,它代表名为Worktime 的员工的工作时间。它拥有ArrayList 和startTimes 以及endTimes。我正在尝试使用以下 注释 将其映射到数据库:
@Entity
@Table(name="worktime")
public class Worktime {
@Id
@Column(name="worktime_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int worktimeId;
@Column(name="date")
@Temporal(TemporalType.DATE)
private Date date;
@ElementCollection
@CollectionTable(name="WORKTIME_TIMES")
@Temporal(TemporalType.TIME)
private List<Date> startTimes = new ArrayList<>();
@ElementCollection
@CollectionTable(name="WORKTIME_TIMES")
@Temporal(TemporalType.TIME)
private List<Date> endTimes = new ArrayList<>();
@ManyToOne
@JoinColumn(name="person_id")
private Employee employee;
...
}
我在数据库中得到的结构是这样的:
我想要的是这两个值在同一行中。有没有机会通过索引做到这一点?感谢您的帮助!
【问题讨论】:
-
不,您不能将 2 个列表映射到 1 个表中,因为 JPA 提供程序如何知道在检索时将它们放入哪个列表?!!!!!!或者实际上它怎么能以你提议的方式持续存在?!