我收到此错误:
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
下载的依赖项是:
答案 0 :(得分:0)
当你有一个@Id
(你必须拥有它,所以真的没有看到删除它的重点)你有(关于Table.indexes)的例外显然有一个例外,你不要不发布。很可能它找不到那个注释方法(这是一个JPA 2.1方法IIRC),因为你有一个JPA实现支持JPA 2.0并且在CLASSPATH中有一个JPA2.1 jar,反之亦然。发布原因例外将澄清哪些,并且应该指向正确的方向