Multilevel inheritance in the inheritance inheritance strategy using a discriminator for each parent in the hierarchy

Consider my classes below.

Product (abstract class Root)

@Entity
@Table(name="PRODUCT")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="PRODUCT_TYPE")
public abstract class Product {

    @Id
    @GeneratedValue
    @Column(name = "product_ent_id", insertable = false)
    private int productEntId;
}

Auto (Another parent class that extends Product)

@Entity
@Table(name="CAR")
@DiscriminatorValue(value="Car") 
@PrimaryKeyJoinColumn(name="car_ent_id") 
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="CAR_TYPE") 
public abstract class Car extends Product {

    @Column(name = "car_ent_id", insertable = false, updatable = false)
    private int carEntId;
}

Speeder (the last child of hierarchy expanding the car)

@Entity
@Table(name="SPEEDER")
@DiscriminatorValue(value="Speeder") 
@PrimaryKeyJoinColumn(name="speeder_ent_id")
public class Speeder extends Car {

    @Column(name = "speeder_ent_id", insertable = false, updatable = false)
    private int speederEntId;
}

Using the discriminator in the same parent-child hierarchy succeeded for me when the JPA matches my object model in my data model using discriminators, the discriminator values ​​are set correctly, but since I added another hierarchy level that is Speeder-extends-Car-extends -Product , discriminator value or not working properly,

PRODUCT tableCAR tableSPEEDER table

(, ), , , Speeder - , Product, Car , , , , ? ? , , , , , , , . .

+4

All Articles