Spring数据和hibernate ..抽象类存储库

时间:2013-05-07 14:36:24

标签: java hibernate spring-data-jpa

我有一个抽象的通用基类,我试图使用spring数据jpa和hibernate来创建一个允许我获取子类的存储库......

如下

@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,基于其id返回一个对象,然后我想能够做一个实例,并且,转换为正确的类型......是可能的..我的存储库界面..

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

}

我得到的只是id,我知道它的基本类型是Vehicle,我想对数据库进行一次获取,然后获取类型并在之后进行转换..当我运行这个时我得到的无法加载实体车辆

任何有任何想法热议的人都会这么做?...

1 个答案:

答案 0 :(得分:0)

如果我没有错,你不希望在@DiscriminatorValue("ROOT")

abstract class AbstractVehicle

@DiscriminatorColumn(name="discriminator")将包含TruckCAR个值。