2013-05-07 1 views
0

У меня есть абстрактный общий базовый класс, и им пытается использовать JPA пружинных данных с спящим режимом, чтобы создать репозиторий, который позволяет мне получать дочерние классы ...Spring данные и зимуют .. абстрактный класс хранилище

следующего

@Entity 
@Table(name="Vehicle") 
@Inheritance(strategy=InheritanceType.SINGLE_TABLE) 
@DiscriminatorColumn(name="discriminator") 
@DiscriminatorValue("ROOT") 
public abstract class AbstractVehicle< 
    D extends Engine, O extends Chassy> 
    implements Model<D, O> { 

.... 
... 

} 

у меня есть два суб-классы следующим образом:

@Entity 
@DiscriminatorValue("TRUCK") 
public final class Truck<D extends TruckEngine> extends AbstractVehicle<D, TruckChassy> { 

.. 
.. 
} 

@Entity 
@DiscriminatorValue("CAR") 
public final class Car<D extends CarEngine> extends AbstractVehicle<D, CarChassy> { 

.. 
.. 
} 

Теперь я пытаюсь использовать Spring Data JPA, чтобы вернуть мне объект на основе его идентификатора, то я хочу, чтобы иметь возможность сделать п экземпляр и приведение к правильному типу ... это возможно .. мой интерфейс для хранилища ..

@SuppressWarnings("rawtypes") 
    public interface VehicleFinderRepository extends JpaRepository<AbstractVehicle, String> { 
    } 

} 

Все я даюсь это идентификатор, и я знаю его будет иметь базовый тип транспортного средства, я хочу сделать выборку по базе данных, а затем получить тип и бросьте потом .. Когда я запускаю это я получаю не может загрузить сущности Vehicle

Кто есть какие-либо идеи горячих идти об этом? ...

ответ

0

Если я не ошибаюсь, вы не хотите иметь @DiscriminatorValue("ROOT") на abstract class AbstractVehicle

@DiscriminatorColumn(name="discriminator") будет либо Truck, либо CAR значений.

Смежные вопросы