【问题标题】:org.hibernate.AnnotationException: No identifier specified for entity: com.ubosque.modelo.Ciudadanoorg.hibernate.AnnotationException:没有为实体指定标识符:com.ubosque.modelo.Ciudadano
【发布时间】:2015-07-25 08:49:12
【问题描述】:

我收到此错误:

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

【问题讨论】:

  • 你能发布你的完整堆栈跟踪吗?另外,您确定您的表 ciudadano 中有一个名为 ID 的列与数字整数类型匹配吗?

标签: hibernate jpa hibernate-annotations


【解决方案1】:

当你有一个@Id 存在时,你有一个异常(关于 Table.indexes)(你必须有,所以真的看不出删除它的意义)显然有一个你没有的原因异常邮政。它很可能找不到该注释方法(这是一个 JPA 2.1 方法 IIRC),因为您有一个支持 JPA 2.0 的 JPA 实现并且在 CLASSPATH 中有一个 JPA2.1 jar,反之亦然。发布原因异常将阐明哪个,并且应该为您指明正确的方向

【讨论】:

    猜你喜欢
    • 2014-04-06
    • 2016-01-31
    • 2020-05-02
    • 2013-02-25
    • 2021-05-19
    • 2011-05-21
    • 2014-11-09
    • 1970-01-01
    相关资源
    最近更新 更多