Я пытаюсь смоделировать метеослужбу, которая поддерживает несколько местоположений.В моем приложении есть 3 объекта:
- Местоположение - информация о местоположении
- Погода (включая идентификатор местоположения) - Данные о погоде за один час
- LocationWeather - ПодклассМестоположение, содержащее список погоды
Я хочу, чтобы местоположение иногда существовало как отдельная сущность от погоды.Таким образом, я могу выставлять CRUD-операции на объекте Location без переноса всех его данных о погоде.Тем не менее, я все еще хочу удовлетворить основной сценарий возврата погоды для данного местоположения, поэтому LocationWeather существует.
Можно ли сделать то, что я хочу, с помощью наследования?Я пробовал
@Entity
@Table(name="location")
@Inheritance(strategy = InheritanceType.JOINED)
public class Location {
, но мой подкласс (LocationWeather) не связан напрямую с таблицей.Должен ли я переместить свой Список погоды до объекта Location и каким-то образом пометить его как необязательный?
Location.java
@Entity
@Table(name="location")
public class Location {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="location_id")
private int id;
@Column(name="name")
private String name;
Weather.java
@Entity
@IdClass(WeatherId.class)
@Table(name="weather")
public class Weather {
@Id
@Column(name="location_id")
private int locationId;
@Id
@Column(name="time")
private Date time;
@Column(name="temperature")
private Double temperature;
LocationWeather.java
@Entity
public class LocationWeather extends Location{
@ElementCollection
@CollectionTable(name="weather", joinColumns= {@JoinColumn(name="location_id")})
@Column(name="weather")
private List<Weather> weather;