@IdClass no supertype found

59 Views Asked by At

I want to make a table, let's say table's name is Car. It will has 3 column, brandId, typeId and sizeId. I want all of the columns to be primary key. typeId and sizeId are column from different table. I already try to make code using @IdClass. But, error "No supertype found" appear.

This is Entity clas :

@Entity
@IdClass(CarPk.class)
@Table(name = "CAR")
public class Car implements Serializable {
    private static final long serialVersionUID = -1576946068763487642L;
    public Car() {
    }

    public Car(String brandId, TypeId typeId, SizeId sizeId) {
    this.brandId = brandId;
    this.typeId = typeId;
    this.sizeId = sizeId;
    }



   @Id
   @Column(name = "BRAND_ID", nullable = false, length = 20)
   private String brandId;

   @Id
   @ManyToOne
   @JoinColumn(name = "TYPE_ID", nullable = false)
   private TypeId typeId;

    @Id
    @ManyToOne
    @JoinColumn(name = "SIZE_ID", nullable = false)
    private SizeId sizeId;



public String getBrandId() {
    return brandId;
}

public void setBrandId(String brandId) {
    this.brandId= brandId;
}


public TypeId getTypeId() {
    return typeId;
}

public void setTypeId (TypeId typeId) {
    this.typeId= typeId;
}


public SizeId getSizeId() {
    return sizeId;
}

public void setSizeId (SizeId sizeId) {
    this.sizeId= sizeId;
}

}

And this is CarPk class :

public class CarPk implements Serializable {
    private static final long serialVersionUID = -1576946068763487642L;
    public CarPk() {
    }

    public CarPk(String brandId, TypeId typeId, SizeId sizeId) {
    this.brandId = brandId;
    this.typeId = typeId;
    this.sizeId = sizeId;
    }


private String brandId;
private TypeId typeId;
private SizeId sizeId;



public String getBrandId() {
    return brandId;
}

public void setBrandId(String brandId) {
    this.brandId= brandId;
}


public TypeId getTypeId() {
    return typeId;
}

public void setTypeId (TypeId typeId) {
    this.typeId= typeId;
}


public SizeId getSizeId() {
    return sizeId;
}

public void setSizeId (SizeId sizeId) {
    this.sizeId= sizeId;
}

}

What is wrong this code? Thank you anyway

0

There are 0 best solutions below