В настоящее время я изучаю Hibernate и Java Persistence API.
У меня есть класс @Entity, и мне нужно применить аннотации к различным полям. Я включил в код ниже все три места, куда они могли попасть.
Должен ли я применять их к самому полю, геттеру или сеттеру? И какова смысловая разница, если таковая имеется, между этими тремя вариантами.
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
@Entity
@Table(name = "song")
public class Song {
// Annotations should only be applied to one of the below
@Id
@Column(name="id", unique=true, nullable=false)
private int id;
@Id
@Column(name="id", unique=true, nullable=false)
public int getId() {
return id;
}
@Id
@Column(name="id", unique=true, nullable=false)
public void setId(int id) {
this.id = id;
}
}