javax.persistence Аннотации к полю, геттеру или сеттеру?

В настоящее время я изучаю 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;
    }
}
16
задан James McGuigan 22 January 2012 в 22:01
поделиться