Hibernate继承错误java.lang.ClassCastException:org.hibernate.mapping.UnionSubclass无法强制转换为org.hibernate.mapping.RootClass

时间:2018-01-26 18:51:30

标签: java hibernate jpa inheritance

我正在尝试将Auditable类继承到我的用户类,以便跟踪创建和更新的每个用户。但是在添加 @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)时,它显示我错误。

  

java.lang.ClassCastException:org.hibernate.mapping.UnionSubclass无法强制转换为org.hibernate.mapping.RootClass

我为此尝试了不同的解决方案,但我无法理解此错误的实际原因。

Auditable.java

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Auditable {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

    protected String createdBy;
    protected Date createdOn;
    protected String updatedBy;
    protected Date updatedOn;
}

User.java

@Entity
public class User extends Auditable{

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    private String userId;
    private String userName;
    private String password;
    private String userType;
    private String firstName;
    private String lastName;
    private String gender;
    private Date dob;
    private String email;
}

现在在创建新用户时,它不允许我保存用户显示的ClassCaseException。所以我无法理解如何继承可审计的类。

1 个答案:

答案 0 :(得分:0)

由于要为对象及其超类创建一个表,因此不能有两个“ id”字段。