Я создал следующую структуру сущностей:
@Data
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class SingleChange {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
}
@Data
@NoArgsConstructor
@Entity
public class SingleChangeByFoot extends SingleChange{
Double lengthInMinutes;
}
@Data
@NoArgsConstructor
@Entity
public class SingleChangeByVehicle extends SingleChange{
String lineName;
String firstStop;
String lastStop;
}
Я также создал репозитории JPA для каждой сущности.
И я хотел бы спросить, как получить подклассы, когда у меня есть идентификатор только с использованием JPAрепозиторий.Я пытался получить объекты с помощью SingleChangeRepository, а затем с помощью метода getClass()
или оператора instanceof
, но он возвращает что-то вроде SingleChange за прокси Hibernate, он не говорит, принадлежит ли этот объект классу SingleChangeByFoot или SingleChangeByVehicle.Как узнать, использовать ли репозиторий SingleChangeByFoot или SingleChangeByVehicleRepository