Hibernate throws org.hibernate.AnnotationException: No identifier specified for entity: com..domain.idea.MAE_MFEView
You are missing a field annotated with @Id
. Each @Entity
needs an @Id
- this is the primary key in the database.
If you don't want your entity to be persisted in a separate table, but rather be a part of other entities, you can use @Embeddable
instead of @Entity
.
If you want simply a data transfer object to hold some data from the hibernate entity, use no annotations on it whatsoever - leave it a simple pojo.
Update: In regards to SQL views, Hibernate docs write:
There is no difference between a view and a base table for a Hibernate mapping. This is transparent at the database level
For me, javax.persistence.Id
should be used instead of org.springframework.data.annotation.Id
. For anyone who encountered this issue, you can check if you imported the right Id
class.
This error can be thrown when you import a different library for @Id than Javax.persistance.Id ; You might need to pay attention this case too
In my case I had
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Table;
import org.springframework.data.annotation.Id;
@Entity
public class Status {
@Id
@GeneratedValue
private int id;
when I change the code like this, it got worked
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Table;
import javax.persistence.Id;
@Entity
public class Status {
@Id
@GeneratedValue
private int id;