Название немного странное, поэтому позвольте мне уточнить.
У меня есть два объекта, Гараж и Автомобиль, в отношениях один ко многим. Есть несколько типов транспортных средств, таких как легковые и грузовые автомобили; тип сохраняется в виде строки в таблице Vehicle.
Вот два класса:
@Entity
@Table(...)
public class Garage {
....
@Column(name = "garageId")
private Integer garageId;
@OneToMany
@JoinColumn(name = "garageId")
private Set<Vehicle> vehicles;
....
}
@Entity
@Table(...)
public class Vehicle {
....
@Column(name = "garageId")
private Integer garageId;
//could be "Truck" or "Car"
@Column(name = "type")
private String type;
....
}
Чтобы различать типы транспортных средств, в настоящее время мы должны взглянуть на столбец типа и использовать перечисление. То, что я хотел бы сделать, это иметь подклассы Vehicle, такие как Car и Truck, чтобы представлять различные типы, а не полагаться на поле Type. Тогда мой код может instanceof
определить тип вместо того, чтобы использовать это поле.
Однако я не знаю, как сказать Hibernate, как создавать экземпляры подклассов на основе значения столбца Type или, если это вообще возможно.
Буду признателен за любую помощь, которую вы, ребята, можете оказать. Заранее спасибо!