Название немного странное, поэтому позвольте мне уточнить.
У меня есть два объекта, Garage и Vehicle, в отношениях "один ко многим". Есть несколько типов транспортных средств, таких как легковые и грузовые автомобили; тип сохраняется как строка в таблице 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, как создавать экземпляры подклассов на основе значения столбца «Тип», и если это вообще возможно.
Я был бы признателен за любую помощь, которую вы, ребята, можете дать. Заранее спасибо!