【发布时间】:2014-12-06 15:04:12
【问题描述】:
我正在使用 JPA 构建一个应用程序,我希望有一个名为“BaseEntity”的父实体,它具有属性 ID,然后其他实体扩展该实体,然后拥有自己的属性。父类中的字段 id 是受保护的。但是,当我启动服务器时,出现以下错误:
原因:org.hibernate.AnnotationException:没有为实体指定标识符:com.fgonzalez.domainmodel.User
当然,如果我将 id 字段放在 User 类中,它可以正常工作,但这不是我想要的。奇怪的是,如果我将 xml 文件用于休眠映射而不是 JPA,它可以正常工作,但不能使用 JPA。知道问题出在哪里吗?附上代码:
基础实体:
public class BaseEntity implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name="id")
protected Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
和用户实体:
@Entity
@Table(name="users")
public class User extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
@Column(name="EMAIL",nullable=false,length=50,insertable=true,updatable=true)
private String email;
@Column(name="PASSWORD",nullable=false,length=50,insertable=true,updatable=true)
private String password;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email=email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
提前谢谢你!!
【问题讨论】: