标题有点奇怪,让我澄清一下。
我有两个对象,车库和车辆,是一对多的关系。有多种类型的车辆,例如轿车和卡车;该类型作为字符串保存在 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 列的值来实例化子类,或者它是否可以。
我会很感激你们能提供的任何帮助。提前致谢!