我正在尝试将Auditable类继承到我的用户类,以便跟踪创建和更新的每个用户。但是在添加 @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)时,它显示我错误。
java.lang.ClassCastException:org.hibernate.mapping.UnionSubclass无法强制转换为org.hibernate.mapping.RootClass
我为此尝试了不同的解决方案,但我无法理解此错误的实际原因。
@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;
}
@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。所以我无法理解如何继承可审计的类。
答案 0 :(得分:0)
由于要为对象及其超类创建一个表,因此不能有两个“ id”字段。