Вероятно, общая проблема, но в любом случае:
Допустим, у меня есть простая задача Задача со списком объектов Деятельности:
@Entity
@Table(name = "task")
public class Task {
@Id
@Column(name = "id")
private Integer id;
@OneToMany
@JoinColumn(name = "task_id")
private List<Activity> activities;
}
А сущность Activity довольно проста:
@Entity
@Table(name = "activity")
public class Activity {
@Id
@Column(name = "id")
private Integer id;
@Column(name = "activity_type")
private int type;
}
И здесь я хочу сделать немного магии - на основе типа Activity, я хочу, чтобы hibernate заполнял Task.activities различными реализациями Activity, например, если Activity.type == 1, я хочу, чтобы там был ActivityAImpl, если Activity. type == 2 - это должно быть ActivityBImpl и т. д. В основном все мои действия реализуют один интерфейс с некоторым методом execute ().
Надеюсь, для этого есть простое решение.
Спасибо за вашу помощь!