【发布时间】:2017-09-12 21:59:41
【问题描述】:
我在决定如何在 JPA 的“电影”实体中表示“ReleaseDate”字段时遇到问题。以this movie 为例。类字段看起来像这样:
@Entity
public class Movie {
private Long id;
private String name;
private Director director;
private List<Writer> writers;
private List<Actor> actors;
private List<ReleaseDate> releaseDates;
}
//@Entity ?
class ReleaseDate {
private String northAmericanReleaseDate;
private String europeanReleaseDate;
private String asianReleaseDate;
// add more locations here
}
如果电影可以有多个发行日期,我不太确定如何表示它们。以上是我目前所拥有的,如果一部电影没有在某个位置上映,它将为空,这意味着没有在该位置上映。
更大的问题是,我认为 ReleaseDate 不应该是一个实体/类,因为我认为它不保证表中的一行具有它自己的 ID。这里最好的策略是什么?谢谢。
【问题讨论】:
-
首先,您应该使用
id,而不是Id。其次,您应该使用 LocalDate 来表示日期,而不是字符串。关于您的问题,您应该改用 Map或 Set ,其中 LocationReleaseDate 将是具有 Location 和 LocalDate 的实体(或 Embeddable)。 -
Embeddable 可能是我所追求的。谢谢。