Tenho um erro:
java.lang.ClassCastException: org.hibernate.mapping.SingleTableSubclass cannot be cast to org.hibernate.mapping.RootClass
É lançado porque tenho duas @Id
anotações. Tenho uma classe abstrata:
@Entity
@Table(name = "PRODUCTS")
public abstract class CommonProduct<Type extends AbstractProductUnderlying> extends HibernatePersistentObject implements Serializable, UniqueObject {
@Ignore
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "products_seq")
@SequenceGenerator(name = "products_seq", sequenceName = "products_seq")
@Column(name = "productId")
protected Integer productId;
Tenho uma segunda classe sem @Id
a qual estende a acima e é a mesma tabela:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Product extends CommonProduct<ProductUnderlying> {
e há uma terceira tabela que tem IDs diferentes como CommonProduct
:
@Entity(name = "viewProductHistory")
@Table(name = "PRODUCT_HISTORY")
public class ProductHistory extends CommonProduct<ProductUnderlyingHistory> {
@Id
@Column(name = "PRODUCT_HISTORY_ID")
private int ProductHistoryId;
Como posso resolver se duas classes estendem aquela com, @Id
mas uma delas tem diferentes Id
?
com
CommonProduct
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "PRODUCTS")
onde ele pertence. Ao lado deProduct
productId
deCommonProduct
paraProduct