org.hibernate.AnnotationException:没有为实体指定标识符:com.ubosque.modelo.Ciudadano

时间:2015-05-13 21:25:14

标签: hibernate jpa hibernate-annotations

我收到此错误:

org.hibernate.AnnotationException:
No identifier specified for entity: com.ubosque.modelo.Ciudadano

我的班级:

@Entity
@Table(name="ciudadano")
public class Ciudadano implements java.io.Serializable {


private static final long serialVersionUID = 1L;

private int id;
private String nombre;
private String apellido;
@Column(name="fecha_nac")
private Date fechaNac;
@Column(name="lugar_nac")
private String lugarNac;
private String direccion;
private String telefono;
@Column(name="estado_civil")
private String estadoCivil;
private String email;
@Column(name="desc_perfil_prof")
private String descPerfilProf;

// setters & getters ...

我知道此错误是因为没有@Id注释,但如果我将@Id添加到id变量,则在部署时会出现此错误:

javax.servlet.ServletException:
javax.persistence.Table.indexes()[Ljavax/persistence/Index;

并且当我删除@Id注释时此错误仅会消失,因此我们将不胜感激。

我的项目是使用Maven 3创建的,而通过pom下载的依赖项是:

  1. mysql-connector-java-5.0.8
  2. hibernate-core-4.3.9.Final

1 个答案:

答案 0 :(得分:0)

当你有一个@Id(你必须拥有它,所以真的没有看到删除它的重点)你有(关于Table.indexes)的例外显然有一个例外,你不要不发布。很可能它找不到那个注释方法(这是一个JPA 2.1方法IIRC),因为你有一个JPA实现支持JPA 2.0并且在CLASSPATH中有一个JPA2.1 jar,反之亦然。发布原因例外将澄清哪些,并且应该指向正确的方向